Skip to content

Commit da4dc8e

Browse files
committed
Build binaries on github
1 parent 95d8581 commit da4dc8e

File tree

1 file changed

+41
-4
lines changed

1 file changed

+41
-4
lines changed

.github/workflows/rust.yml

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,44 @@ jobs:
1616

1717
steps:
1818
- uses: actions/checkout@v4
19-
- name: Build
20-
run: cargo build --verbose
21-
- name: Run tests
22-
run: cargo test --verbose
19+
20+
- name: Install Cross Compilation Targets
21+
run: |
22+
rustup target add x86_64-unknown-linux-gnu
23+
rustup target add aarch64-unknown-linux-gnu
24+
rustup target add x86_64-apple-darwin
25+
rustup target add aarch64-apple-darwin
26+
rustup target add x86_64-pc-windows-gnu
27+
rustup target add aarch64-pc-windows-msvc
28+
29+
- name: Build Binaries
30+
run: |
31+
version="${{ github.event.inputs.version }}"
32+
[ -z "$version" ] && version="latest"
33+
mkdir -p bin
34+
architectures=("x86_64" "aarch64")
35+
36+
for arch in "${architectures[@]}"; do
37+
cargo build --release --target x86_64-unknown-linux-gnu
38+
mv target/x86_64-unknown-linux-gnu/release/my_rust_program bin/my_rust_program-$version-linux-$arch
39+
40+
cargo build --release --target aarch64-unknown-linux-gnu
41+
mv target/aarch64-unknown-linux-gnu/release/my_rust_program bin/my_rust_program-$version-linux-$arch
42+
43+
cargo build --release --target x86_64-apple-darwin
44+
mv target/x86_64-apple-darwin/release/my_rust_program bin/my_rust_program-$version-darwin-$arch
45+
46+
cargo build --release --target aarch64-apple-darwin
47+
mv target/aarch64-apple-darwin/release/my_rust_program bin/my_rust_program-$version-darwin-$arch
48+
49+
cargo build --release --target x86_64-pc-windows-gnu
50+
mv target/x86_64-pc-windows-gnu/release/my_rust_program.exe bin/my_rust_program-$version-windows-$arch.exe
51+
done
52+
53+
echo "ARTIFACT_NAME=my_rust_program-$(date +'%d.%m.%Y')" >> $GITHUB_ENV
54+
55+
- name: Upload Binaries
56+
uses: actions/upload-artifact@v4
57+
with:
58+
name: ${{ env.ARTIFACT_NAME }}
59+
path: bin/

0 commit comments

Comments
 (0)