Skip to content

Commit ea22806

Browse files
bors[bot]qdrnyvan-sraka
authored
Merge #2114
2114: Update cd.yml r=yvan-sraka a=qdrn This should work. Removes the need from the custom image. Co-authored-by: Adrien LF <alf@massa.net> Co-authored-by: Yvan Sraka <yvan@sraka.xyz>
2 parents 7b9e53e + 691f570 commit ea22806

File tree

1 file changed

+31
-96
lines changed

1 file changed

+31
-96
lines changed

.github/workflows/cd.yml

Lines changed: 31 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -10,120 +10,55 @@ env:
1010
RUST_BACKTRACE: full
1111

1212
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 }}
1728
steps:
1829
- uses: actions/checkout@v2
1930
with:
2031
submodules: "recursive"
2132
- uses: actions-rs/toolchain@v1
2233
with:
2334
profile: minimal
24-
toolchain: nightly-2021-12-03
25-
target: "x86_64-unknown-linux-musl"
35+
toolchain: nightly
36+
target: ${{ matrix.target }}
2637
override: true
2738
- uses: Swatinem/rust-cache@v1
2839
- uses: actions-rs/cargo@v1
2940
with:
3041
command: build
3142
args: --release
32-
- run: |
43+
- name: Package
44+
shell: bash
45+
run: |
3346
mkdir massa && cd massa && mkdir massa-node && mkdir massa-client
3447
cp -v ../target/release/massa-node massa-node/massa-node
3548
cp -v ../target/release/massa-client massa-client/massa-client
3649
cp -rv ../massa-node/config massa-node/config
3750
cp -rv ../massa-node/base_config massa-node/base_config
3851
cp -rv ../massa-node/storage massa-node/storage
3952
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
7163
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

Comments
 (0)