99name : Production
1010
1111jobs :
12- centos :
13- name : Build - CentOS / RHEL
14- runs-on : ubuntu-latest
15- steps :
16- - name : Check out code
17- uses : actions/checkout@v2
18- - name : Set up docker image
19- run : docker build -t volta .
20- working-directory : ./ci/docker-centos
21- - name : Compile and package Volta
22- run : docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-and-package.sh volta-centos
23- - name : Confirm correct OpenSSL Version
24- run : |
25- objdump -p target/release/volta
26- readelf -d target/release/volta
27- - name : Upload release artifact
28- uses : actions/upload-artifact@v2
29- with :
30- name : linux-centos
31- path : target/release/volta-centos.tar.gz
32-
33- linux-ssl-3 :
34- name : Build - OpenSSL 3
35- runs-on : ubuntu-latest
36- steps :
37- - name : Check out code
38- uses : actions/checkout@v2
39- - name : Set up docker image
40- run : docker build -t volta .
41- working-directory : ./ci/docker-ubuntu
42- - name : Compile and package Volta
43- run : docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-and-package.sh volta-openssl-3
44- - name : Confirm correct OpenSSL Version
45- run : |
46- objdump -p target/release/volta
47- readelf -d target/release/volta
48- - name : Upload release artifact
49- uses : actions/upload-artifact@v2
50- with :
51- name : linux-openssl-3
52- path : target/release/volta-openssl-3.tar.gz
53-
5412 linux :
55- strategy :
56- matrix :
57- openssl :
58- - 1_1_0
59- - 1_0_1
60- name : Build - OpenSSL ${{ matrix.openssl }}
13+ name : Build - Linux
6114 runs-on : ubuntu-latest
6215 steps :
6316 - name : Check out code
64- uses : actions/checkout@v2
65- - name : Check out OpenSSL
66- uses : actions/checkout@v2
67- with :
68- repository : openssl/openssl
69- ref : OpenSSL_${{ matrix.openssl }}-stable
70- path : openssl
17+ uses : actions/checkout@v3
7118 - name : Set up docker image
7219 run : docker build -t volta .
73- working-directory : ./ci/docker-centos
74- - name : Compile and package OpenSSL & Volta
75- run : docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-with-openssl.sh volta-openssl-${{ matrix.openssl }}
76- - name : Confirm OpenSSL Version
77- run : |
78- objdump -p target/release/volta
79- readelf -d target/release/volta
20+ working-directory : ./ci/docker
21+ - name : Compile and package Volta
22+ run : docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-linux.sh volta-linux
8023 - name : Upload release artifact
81- uses : actions/upload-artifact@v2
24+ uses : actions/upload-artifact@v3
8225 with :
83- name : linux-openssl-${{ matrix.openssl }}
84- path : target/release/volta-openssl-${{ matrix.openssl }} .tar.gz
26+ name : linux
27+ path : target/release/volta-linux .tar.gz
8528
8629 macos :
8730 name : Build - MacOS
8831 runs-on : macos-latest
8932 steps :
9033 - name : Check out code
91- uses : actions/checkout@v2
34+ uses : actions/checkout@v3
9235 - name : Set up cargo
93- uses : actions-rs/ toolchain@v1
36+ uses : dtolnay/rust- toolchain@master
9437 with :
95- profile : minimal
96- toolchain : stable
97- override : true
38+ toolchain : 1.63
39+ - name : Cargo Cache
40+ uses : Swatinem/rust-cache@v2
9841 - name : Compile and package Volta
99- run : ./ci/build-and-package .sh volta-macos
42+ run : ./ci/build-macos-x86_64 .sh volta-macos
10043 - name : Upload release artifact
101- uses : actions/upload-artifact@v2
44+ uses : actions/upload-artifact@v3
10245 with :
10346 name : macos
10447 path : target/release/volta-macos.tar.gz
@@ -108,18 +51,18 @@ jobs:
10851 runs-on : macos-latest
10952 steps :
11053 - name : Check out code
111- uses : actions/checkout@v2
54+ uses : actions/checkout@v3
11255 - name : Set up cargo
113- uses : actions-rs/ toolchain@v1
56+ uses : dtolnay/rust- toolchain@master
11457 with :
115- profile : minimal
116- toolchain : stable
58+ toolchain : 1.63
11759 target : aarch64-apple-darwin
118- override : true
60+ - name : Cargo Cache
61+ uses : Swatinem/rust-cache@v2
11962 - name : Compile and package Volta
120- run : ./ci/build-for -arm.sh volta-macos-aarch64
63+ run : ./ci/build-macos -arm.sh volta-macos-aarch64
12164 - name : Upload release artifact
122- uses : actions/upload-artifact@v2
65+ uses : actions/upload-artifact@v3
12366 with :
12467 name : macos-aarch64
12568 path : target/aarch64-apple-darwin/release/volta-macos-aarch64.tar.gz
@@ -129,23 +72,18 @@ jobs:
12972 runs-on : windows-latest
13073 steps :
13174 - name : Check out code
132- uses : actions/checkout@v2
75+ uses : actions/checkout@v3
13376 - name : Set up cargo
134- uses : actions-rs/ toolchain@v1
77+ uses : dtolnay/rust- toolchain@master
13578 with :
136- profile : minimal
137- toolchain : stable
138- override : true
79+ toolchain : 1.63
80+ - name : Cargo Cache
81+ uses : Swatinem/rust-cache@v2
13982 - name : Add cargo-wix subcommand
140- uses : actions-rs/cargo@v1
141- with :
142- command : install
143- args : cargo-wix
83+ run : cargo install cargo-wix
14484 - name : Compile and package installer
145- uses : actions-rs/cargo@v1
146- with :
147- command : wix
148- args : --nocapture --package volta --output target\wix\volta-windows.msi
85+ run : |
86+ cargo wix --nocapture --package volta --output target\wix\volta-windows.msi
14987 - name : Load Certificate File
15088 id : certificate_file
15189 if : github.event_name == 'push'
@@ -168,12 +106,12 @@ jobs:
168106 run : powershell Compress-Archive volta*.exe volta-windows.zip
169107 working-directory : ./target/release
170108 - name : Upload installer
171- uses : actions/upload-artifact@v2
109+ uses : actions/upload-artifact@v3
172110 with :
173111 name : windows-installer
174112 path : target/wix/volta-windows.msi
175113 - name : Upload zip
176- uses : actions/upload-artifact@v2
114+ uses : actions/upload-artifact@v3
177115 with :
178116 name : windows-zip
179117 path : target/release/volta-windows.zip
@@ -182,40 +120,23 @@ jobs:
182120 name : Publish release
183121 runs-on : ubuntu-latest
184122 needs :
185- - centos
186123 - linux
187- - linux-ssl-3
188124 - macos
189125 - macos-aarch64
190126 - windows
191127 if : github.event_name == 'push'
192128 steps :
193129 - name : Check out code
194- uses : actions/checkout@v2
130+ uses : actions/checkout@v3
195131 - name : Determine release version
196132 id : release_info
197133 env :
198134 TAG : ${{ github.ref }}
199- run : echo "::set-output name= version:: ${TAG:11}"
200- - name : Fetch CentOS artifact
135+ run : echo "version= ${TAG:11}" >> $GITHUB_OUTPUT
136+ - name : Fetch Linux artifact
201137 uses : actions/download-artifact@v2
202138 with :
203- name : linux-centos
204- path : release
205- - name : Fetch OpenSSL 3 artifact
206- uses : actions/download-artifact@v2
207- with :
208- name : linux-openssl-3
209- path : release
210- - name : Fetch OpenSSL 1.0.* artifact
211- uses : actions/download-artifact@v2
212- with :
213- name : linux-openssl-1_0_1
214- path : release
215- - name : Fetch OpenSSL 1.1.* artifact
216- uses : actions/download-artifact@v2
217- with :
218- name : linux-openssl-1_1_0
139+ name : linux
219140 path : release
220141 - name : Fetch MacOS artifact
221142 uses : actions/download-artifact@v2
@@ -248,41 +169,14 @@ jobs:
248169 tag_name : ${{ github.ref }}
249170 release_name : ${{ github.ref }}
250171 draft : true
251- - name : Upload CentOS artifact
252- uses : actions/upload-release-asset@v1
253- env :
254- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
255- with :
256- upload_url : ${{ steps.create_release.outputs.upload_url }}
257- asset_path : ./release/volta-centos.tar.gz
258- asset_name : volta-${{ steps.release_info.outputs.version }}-linux-openssl-rhel.tar.gz
259- asset_content_type : application/gzip
260- - name : Upload OpenSSL 3 artifact
261- uses : actions/upload-release-asset@v1
262- env :
263- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
264- with :
265- upload_url : ${{ steps.create_release.outputs.upload_url }}
266- asset_path : ./release/volta-openssl-3.tar.gz
267- asset_name : volta-${{ steps.release_info.outputs.version }}-linux-openssl-3.0.tar.gz
268- asset_content_type : application/gzip
269- - name : Upload OpenSSL 1.0.* artifact
270- uses : actions/upload-release-asset@v1
271- env :
272- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
273- with :
274- upload_url : ${{ steps.create_release.outputs.upload_url }}
275- asset_path : ./release/volta-openssl-1_0_1.tar.gz
276- asset_name : volta-${{ steps.release_info.outputs.version }}-linux-openssl-1.0.tar.gz
277- asset_content_type : application/gzip
278- - name : Upload OpenSSL 1.1.* artifact
172+ - name : Upload Linux artifact
279173 uses : actions/upload-release-asset@v1
280174 env :
281175 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
282176 with :
283177 upload_url : ${{ steps.create_release.outputs.upload_url }}
284- asset_path : ./release/volta-openssl-1_1_0 .tar.gz
285- asset_name : volta-${{ steps.release_info.outputs.version }}-linux-openssl-1.1 .tar.gz
178+ asset_path : ./release/volta-linux .tar.gz
179+ asset_name : volta-${{ steps.release_info.outputs.version }}-linux.tar.gz
286180 asset_content_type : application/gzip
287181 - name : Upload MacOS artifact
288182 uses : actions/upload-release-asset@v1
0 commit comments