-
Notifications
You must be signed in to change notification settings - Fork 42
137 lines (136 loc) · 5.02 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
on:
push:
tags:
- "v*"
name: Build
jobs:
compile-linux-amd64:
name: release linux/amd64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Setup go 1.16
uses: actions/setup-go@v2
with:
go-version: '1.16'
- name: compile linux amd64
env:
GOARCH: amd64
GOOS: linux
run: |
go get -v ./...
go build -o vault_raft_snapshot_agent_linux_amd64
- name: Upload amd64 binary
uses: actions/upload-artifact@v1
with:
name: binaries
path: vault_raft_snapshot_agent_linux_amd64
compile-linux-arm64:
name: release linux/arm64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Setup go 1.16
uses: actions/setup-go@v2
with:
go-version: '1.16'
- name: compile arm64
env:
GOARCH: arm64
GOOS: linux
run: |
go get -v ./...
go build -o vault_raft_snapshot_agent_linux_arm64
- name: Upload arm64 binary
uses: actions/upload-artifact@v1
with:
name: binaries
path: vault_raft_snapshot_agent_linux_arm64
compile-linux-arm:
name: release linux/arm
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Setup go 1.16
uses: actions/setup-go@v2
with:
go-version: '1.16'
- name: compile arm
env:
GOARCH: arm
GOOS: linux
run: |
go get -v ./...
go build -o vault_raft_snapshot_agent_linux_arm
- name: Upload arm binary
uses: actions/upload-artifact@v1
with:
name: binaries
path: vault_raft_snapshot_agent_linux_arm
create-release:
needs: [compile-linux-amd64, compile-linux-arm64, compile-linux-arm]
name: release linux/amd64
runs-on: ubuntu-latest
steps:
- name: Download binaries from earlier jobs
uses: actions/download-artifact@v1
with:
name: binaries
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Upload Release Asset amd64
id: upload-release-asset-linux_amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: binaries/vault_raft_snapshot_agent_linux_amd64
asset_name: vault_raft_snapshot_agent_linux_amd64
asset_content_type: application/octet-stream
- name: Upload Release Asset arm64
id: upload-release-asset-linux_arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: binaries/vault_raft_snapshot_agent_linux_arm64
asset_name: vault_raft_snapshot_agent_linux_arm64
asset_content_type: application/octet-stream
- name: Upload Release Asset arm
id: upload-release-asset-linux_arm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: binaries/vault_raft_snapshot_agent_linux_arm
asset_name: vault_raft_snapshot_agent_linux_arm
asset_content_type: application/octet-stream