12
12
jobs :
13
13
# The 3 following build jobs are 90% copy-pasted and should be refactored using
14
14
# https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
15
- linux :
16
- runs-on : ubuntu-latest
17
- steps :
18
- - uses : actions/checkout@v2
19
- with :
20
- submodules : " recursive"
21
- - uses : actions-rs/toolchain@v1
22
- with :
23
- profile : minimal
24
- toolchain : nightly
25
- target : " x86_64-unknown-linux-musl"
26
- override : true
27
- - uses : Swatinem/rust-cache@v1
28
- - uses : actions-rs/cargo@v1
29
- with :
30
- command : build
31
- args : --release
32
- - run : |
33
- mkdir massa && cd massa && mkdir massa-node && mkdir massa-client
34
- cp -v ../target/release/massa-node massa-node/massa-node
35
- cp -v ../target/release/massa-client massa-client/massa-client
36
- cp -rv ../massa-node/config massa-node/config
37
- cp -rv ../massa-node/base_config massa-node/base_config
38
- cp -rv ../massa-node/storage massa-node/storage
39
- cp -rv ../massa-client/base_config massa-client/base_config
40
- - uses : actions/upload-artifact@v2
41
- with :
42
- name : release_linux
43
- path : massa/
44
-
45
- windows :
46
- runs-on : ubuntu-latest
47
- steps :
48
- - uses : actions/checkout@v2
49
- with :
50
- submodules : " recursive"
51
- - uses : actions-rs/toolchain@v1
52
- with :
53
- profile : minimal
54
- toolchain : nightly
55
- target : x86_64-pc-windows-gnu
56
- override : true
57
- - uses : Swatinem/rust-cache@v1
58
- - uses : actions-rs/cargo@v1
59
- with :
60
- use-cross : true
61
- command : build
62
- args : --target x86_64-pc-windows-gnu --release
63
- - run : |
64
- mkdir massa && cd massa && mkdir massa-node && mkdir massa-client
65
- cp -v ../target/x86_64-pc-windows-gnu/release/massa-node.exe massa-node/massa-node.exe
66
- cp -v ../target/x86_64-pc-windows-gnu/release/massa-client.exe massa-client/massa-client.exe
67
- cp -rv ../massa-node/config massa-node/config
68
- cp -rv ../massa-node/base_config massa-node/base_config
69
- cp -rv ../massa-node/storage massa-node/storage
70
- cp -rv ../massa-client/base_config massa-client/base_config
71
- - uses : actions/upload-artifact@v2
72
- with :
73
- name : release_windows
74
- path : massa/
75
-
76
- macos :
77
- runs-on : macos-latest
15
+ release :
16
+ strategy :
17
+ matrix :
18
+ os : [ubuntu-latest, macOS-latest, windows-latest]
19
+ include :
20
+ - os : ubuntu-latest
21
+ target : x86_64-unknown-linux-musl
22
+ name : release_linux.tar.gz
23
+ - os : windows-latest
24
+ target : x86_64-pc-windows-msvc
25
+ name : release_windows.zip
26
+ - os : macOS-latest
27
+ target : x86_64-apple-darwin
28
+ name : release_macos.tar.gz
29
+ runs-on : ${{ matrix.os }}
78
30
steps :
79
31
- uses : actions/checkout@v2
80
32
with :
@@ -83,49 +35,32 @@ jobs:
83
35
with :
84
36
profile : minimal
85
37
toolchain : nightly
38
+ target : ${{ matrix.target }}
86
39
override : true
87
40
- uses : Swatinem/rust-cache@v1
88
41
- uses : actions-rs/cargo@v1
89
42
with :
90
43
command : build
91
44
args : --release
92
- - run : |
45
+ - name : Package
46
+ shell : bash
47
+ run : |
93
48
mkdir massa && cd massa && mkdir massa-node && mkdir massa-client
94
49
cp -v ../target/release/massa-node massa-node/massa-node
95
50
cp -v ../target/release/massa-client massa-client/massa-client
96
51
cp -rv ../massa-node/config massa-node/config
97
52
cp -rv ../massa-node/base_config massa-node/base_config
98
53
cp -rv ../massa-node/storage massa-node/storage
99
54
cp -rv ../massa-client/base_config massa-client/base_config
100
- - uses : actions/upload-artifact@v2
55
+ cd ..
56
+ if [[ "${{ matrix.os }}" == "windows-latest" ]]
57
+ then
58
+ 7z a ${{ matrix.name }} massa
59
+ else
60
+ tar czvf ${{ matrix.name }} massa
61
+ fi
62
+ cd -
63
+ - name : Publish
64
+ uses : softprops/action-gh-release@v1
101
65
with :
102
- name : release_macos
103
- path : massa/
104
-
105
- release :
106
- runs-on : ubuntu-latest
107
- needs : [linux, windows, macos]
108
- steps :
109
-
110
- with :
111
- name : release_macos
112
- path : release_macos
113
-
114
- with :
115
- name : release_windows
116
- path : release_windows
117
-
118
- with :
119
- name : release_linux
120
- path : release_linux
121
- - run : |
122
- echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
123
- tar -czvf massa_linux.tar.gz release_linux
124
- tar -czvf massa_windows.tar.gz release_windows
125
- tar -czvf massa_macos.tar.gz release_macos
126
- - uses : softprops/action-gh-release@v1
127
- with :
128
- files : |
129
- massa_linux.tar.gz
130
- massa_macos.tar.gz
131
- massa_windows.tar.gz
66
+ files : ' release_*'
0 commit comments