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