Skip to content

Commit 8648792

Browse files
authored
Make jobs for all platforms consistent
1 parent 4a1b968 commit 8648792

File tree

1 file changed

+30
-95
lines changed

1 file changed

+30
-95
lines changed

.github/workflows/cd.yml

Lines changed: 30 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -12,69 +12,21 @@ env:
1212
jobs:
1313
# The 3 following build jobs are 90% copy-pasted and should be refactored using
1414
# 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 }}
7830
steps:
7931
- uses: actions/checkout@v2
8032
with:
@@ -83,49 +35,32 @@ jobs:
8335
with:
8436
profile: minimal
8537
toolchain: nightly
38+
target: ${{ matrix.target }}
8639
override: true
8740
- uses: Swatinem/rust-cache@v1
8841
- uses: actions-rs/cargo@v1
8942
with:
9043
command: build
9144
args: --release
92-
- run: |
45+
- name: Package
46+
shell: bash
47+
run: |
9348
mkdir massa && cd massa && mkdir massa-node && mkdir massa-client
9449
cp -v ../target/release/massa-node massa-node/massa-node
9550
cp -v ../target/release/massa-client massa-client/massa-client
9651
cp -rv ../massa-node/config massa-node/config
9752
cp -rv ../massa-node/base_config massa-node/base_config
9853
cp -rv ../massa-node/storage massa-node/storage
9954
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
10165
with:
102-
name: release_macos
103-
path: massa/
104-
105-
release:
106-
runs-on: ubuntu-latest
107-
needs: [linux, windows, macos]
108-
steps:
109-
- uses: actions/[email protected]
110-
with:
111-
name: release_macos
112-
path: release_macos
113-
- uses: actions/[email protected]
114-
with:
115-
name: release_windows
116-
path: release_windows
117-
- uses: actions/[email protected]
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

Comments
 (0)