Skip to content

Commit bbdd342

Browse files
committed
ci(release): Build linux binary in ubuntu 20 container
1 parent c244409 commit bbdd342

File tree

1 file changed

+133
-109
lines changed

1 file changed

+133
-109
lines changed

.github/workflows/build_binary.yml

Lines changed: 133 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- release/**
7+
pull_request:
78

89
env:
910
CARGO_TERM_COLOR: always
@@ -13,14 +14,37 @@ jobs:
1314
linux:
1415
name: Linux
1516
runs-on: ubuntu-22.04
17+
container:
18+
image: ubuntu:20.04
1619

1720
steps:
21+
- name: Install dependencies
22+
run: |
23+
apt-get update
24+
apt-get install -y --no-install-recommends git ca-certificates gcc libc6-dev curl make
25+
1826
- uses: actions/checkout@v4
1927
with:
2028
submodules: recursive
2129

30+
- run: |
31+
pwd
32+
echo "============"
33+
ls -al /
34+
echo "============"
35+
ls -al .
36+
echo "============"
37+
ls -al /__w/
38+
echo "============"
39+
ls -al /__w/relay/
40+
echo "============"
41+
ls -al /__w/relay/relay/
42+
echo "============"
43+
2244
- name: Install Rust Toolchain
23-
run: rustup toolchain install stable --profile minimal --no-self-update
45+
run: |
46+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --profile minimal --default-toolchain stable -y
47+
. "$HOME/.cargo/env"
2448
2549
- name: Build binary
2650
run: |
@@ -42,111 +66,111 @@ jobs:
4266
# since this artifact will be merged, compression is not necessary
4367
compression-level: '0'
4468

45-
linux-aarch64:
46-
name: Linux Aarch64
47-
runs-on: ubuntu-22.04-arm
48-
49-
steps:
50-
- uses: actions/checkout@v4
51-
with:
52-
submodules: recursive
53-
54-
- name: Install Rust Toolchain
55-
run: rustup toolchain install stable --profile minimal --no-self-update
56-
57-
- name: Build binary
58-
run: |
59-
make build-linux-release
60-
env:
61-
RELAY_FEATURES:
62-
63-
- name: Bundle Debug File
64-
run: |
65-
cd target/release/
66-
zip relay-Linux-aarch64-debug.zip relay.debug
67-
mv relay relay-Linux-aarch64
68-
69-
- uses: actions/upload-artifact@v4
70-
with:
71-
name: artifact-linux-aarch64
72-
path: target/release/relay-Linux-aarch64*
73-
if-no-files-found: 'error'
74-
# since this artifact will be merged, compression is not necessary
75-
compression-level: '0'
76-
77-
macos:
78-
name: macOS
79-
runs-on: macos-14
80-
81-
steps:
82-
- uses: actions/checkout@v4
83-
with:
84-
submodules: recursive
85-
86-
- name: Install Rust Toolchain
87-
run: rustup toolchain install stable --profile minimal --no-self-update
88-
89-
- name: Run Cargo Build
90-
run: cargo build --manifest-path=relay/Cargo.toml --release
91-
env:
92-
CARGO_PROFILE_RELEASE_SPLIT_DEBUGINFO: packed
93-
94-
- name: Bundle dSYM
95-
run: |
96-
cd target/release
97-
mv relay relay-Darwin-x86_64
98-
zip -r relay-Darwin-x86_64-dsym.zip relay.dSYM
99-
100-
- uses: actions/upload-artifact@v4
101-
with:
102-
name: artifact-macos
103-
path: target/release/relay-Darwin-x86_64*
104-
if-no-files-found: 'error'
105-
# since this artifact will be merged, compression is not necessary
106-
compression-level: '0'
107-
108-
windows:
109-
name: Windows
110-
runs-on: windows-2019
111-
112-
steps:
113-
- uses: actions/checkout@v4
114-
with:
115-
submodules: recursive
116-
117-
- name: Install Rust Toolchain
118-
run: rustup toolchain install stable --profile minimal --no-self-update
119-
120-
- name: Run Cargo Build
121-
run: cargo build --manifest-path=relay/Cargo.toml --release
122-
123-
- name: Bundle PDB
124-
run: |
125-
Install-Module 7Zip4PowerShell -Force -Verbose
126-
cd target/release
127-
7z a relay-Windows-x86_64-pdb.zip relay.pdb
128-
mv relay.exe relay-Windows-x86_64.exe
129-
130-
- uses: actions/upload-artifact@v4
131-
with:
132-
name: artifact-windows
133-
path: target/release/relay-Windows-x86_64*
134-
if-no-files-found: 'error'
135-
# since this artifact will be merged, compression is not necessary
136-
compression-level: '0'
137-
138-
merge:
139-
name: Create Release Artifact
140-
runs-on: ubuntu-latest
141-
needs: [linux, linux-aarch64, macos, windows]
142-
steps:
143-
# Note: due to the immutability of artifacts in upload-artifact v4,
144-
# there cannot be mutliple upload-artifacts with the same name, in a sha's workflow runs.
145-
# However in this case it is fine because this only runs on release/** branches,
146-
# and the other runs on release-library/** branches.
147-
- uses: actions/upload-artifact/merge@v4
148-
with:
149-
# Craft expects release assets to be a single artifact named after the sha.
150-
name: ${{ github.sha }}
151-
pattern: artifact-*
152-
delete-merged: true
69+
# linux-aarch64:
70+
# name: Linux Aarch64
71+
# runs-on: ubuntu-22.04-arm
72+
#
73+
# steps:
74+
# - uses: actions/checkout@v4
75+
# with:
76+
# submodules: recursive
77+
#
78+
# - name: Install Rust Toolchain
79+
# run: rustup toolchain install stable --profile minimal --no-self-update
80+
#
81+
# - name: Build binary
82+
# run: |
83+
# make build-linux-release
84+
# env:
85+
# RELAY_FEATURES:
86+
#
87+
# - name: Bundle Debug File
88+
# run: |
89+
# cd target/release/
90+
# zip relay-Linux-aarch64-debug.zip relay.debug
91+
# mv relay relay-Linux-aarch64
92+
#
93+
# - uses: actions/upload-artifact@v4
94+
# with:
95+
# name: artifact-linux-aarch64
96+
# path: target/release/relay-Linux-aarch64*
97+
# if-no-files-found: 'error'
98+
# # since this artifact will be merged, compression is not necessary
99+
# compression-level: '0'
100+
#
101+
# macos:
102+
# name: macOS
103+
# runs-on: macos-14
104+
#
105+
# steps:
106+
# - uses: actions/checkout@v4
107+
# with:
108+
# submodules: recursive
109+
#
110+
# - name: Install Rust Toolchain
111+
# run: rustup toolchain install stable --profile minimal --no-self-update
112+
#
113+
# - name: Run Cargo Build
114+
# run: cargo build --manifest-path=relay/Cargo.toml --release
115+
# env:
116+
# CARGO_PROFILE_RELEASE_SPLIT_DEBUGINFO: packed
117+
#
118+
# - name: Bundle dSYM
119+
# run: |
120+
# cd target/release
121+
# mv relay relay-Darwin-x86_64
122+
# zip -r relay-Darwin-x86_64-dsym.zip relay.dSYM
123+
#
124+
# - uses: actions/upload-artifact@v4
125+
# with:
126+
# name: artifact-macos
127+
# path: target/release/relay-Darwin-x86_64*
128+
# if-no-files-found: 'error'
129+
# # since this artifact will be merged, compression is not necessary
130+
# compression-level: '0'
131+
#
132+
# windows:
133+
# name: Windows
134+
# runs-on: windows-2019
135+
#
136+
# steps:
137+
# - uses: actions/checkout@v4
138+
# with:
139+
# submodules: recursive
140+
#
141+
# - name: Install Rust Toolchain
142+
# run: rustup toolchain install stable --profile minimal --no-self-update
143+
#
144+
# - name: Run Cargo Build
145+
# run: cargo build --manifest-path=relay/Cargo.toml --release
146+
#
147+
# - name: Bundle PDB
148+
# run: |
149+
# Install-Module 7Zip4PowerShell -Force -Verbose
150+
# cd target/release
151+
# 7z a relay-Windows-x86_64-pdb.zip relay.pdb
152+
# mv relay.exe relay-Windows-x86_64.exe
153+
#
154+
# - uses: actions/upload-artifact@v4
155+
# with:
156+
# name: artifact-windows
157+
# path: target/release/relay-Windows-x86_64*
158+
# if-no-files-found: 'error'
159+
# # since this artifact will be merged, compression is not necessary
160+
# compression-level: '0'
161+
#
162+
# merge:
163+
# name: Create Release Artifact
164+
# runs-on: ubuntu-latest
165+
# needs: [linux, linux-aarch64, macos, windows]
166+
# steps:
167+
# # Note: due to the immutability of artifacts in upload-artifact v4,
168+
# # there cannot be mutliple upload-artifacts with the same name, in a sha's workflow runs.
169+
# # However in this case it is fine because this only runs on release/** branches,
170+
# # and the other runs on release-library/** branches.
171+
# - uses: actions/upload-artifact/merge@v4
172+
# with:
173+
# # Craft expects release assets to be a single artifact named after the sha.
174+
# name: ${{ github.sha }}
175+
# pattern: artifact-*
176+
# delete-merged: true

0 commit comments

Comments
 (0)