|
12 | 12 |
|
13 | 13 | env: |
14 | 14 | CARGO_TERM_COLOR: always |
15 | | - CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc |
16 | | - CC_aarch64_unknown_linux_musl: aarch64-linux-gnu-gcc |
17 | 15 |
|
18 | 16 | jobs: |
19 | 17 | build: |
20 | 18 | name: Rust project - latest |
21 | 19 | runs-on: ubuntu-latest |
22 | | - strategy: |
23 | | - matrix: |
24 | | - target: |
25 | | - - aarch64-unknown-linux-musl |
26 | 20 | steps: |
27 | 21 | - uses: actions/checkout@v4 |
28 | 22 |
|
29 | 23 | - uses: actions-rust-lang/setup-rust-toolchain@v1 |
30 | 24 | with: |
31 | | - target: ${{ matrix.target }} |
| 25 | + target: aarch64-unknown-linux-musl |
32 | 26 |
|
33 | | - - name: Install cross-compilation dependencies |
| 27 | + - name: Install base dependencies |
34 | 28 | run: | |
35 | 29 | sudo apt-get update |
36 | 30 | sudo apt-get install -y --no-install-recommends \ |
37 | | - gcc-aarch64-linux-gnu \ |
38 | | - musl-tools \ |
| 31 | + build-essential \ |
39 | 32 | cmake \ |
40 | | - nasm \ |
41 | | - clang |
| 33 | + perl \ |
| 34 | + pkg-config \ |
| 35 | + libclang-dev \ |
| 36 | + musl-tools \ |
| 37 | + crossbuild-essential-arm64 |
| 38 | +
|
| 39 | + - name: Install musl.cc aarch64 cross-compiler |
| 40 | + run: | |
| 41 | + wget -q https://github.com/musl-cc/musl.cc/releases/latest/download/aarch64-linux-musl-cross.tgz |
| 42 | + tar xzf aarch64-linux-musl-cross.tgz -C /opt |
| 43 | + echo "/opt/aarch64-linux-musl-cross/bin" >> $GITHUB_PATH |
42 | 44 |
|
43 | 45 | - name: Versions |
44 | 46 | id: version |
45 | 47 | run: echo "VERSION=$(cargo metadata --format-version 1 --no-deps | jq .packages[0].version -r | sed 's/^/v/')" >> "$GITHUB_OUTPUT" |
46 | 48 |
|
47 | 49 | - name: Build |
48 | | - run: cargo build --release --target ${{ matrix.target }} |
| 50 | + env: |
| 51 | + CC: aarch64-linux-musl-gcc |
| 52 | + CXX: aarch64-linux-musl-g++ |
| 53 | + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-musl-g++ |
| 54 | + run: cargo build --release --target aarch64-unknown-linux-musl |
49 | 55 |
|
50 | 56 | - name: Package release |
51 | | - run: tar czf redlib-${{ matrix.target }}.tar.gz -C target/${{ matrix.target }}/release/ redlib |
| 57 | + run: tar czf redlib-aarch64-unknown-linux-musl.tar.gz -C target/aarch64-unknown-linux-musl/release/ redlib |
52 | 58 |
|
53 | 59 | - name: Upload release |
54 | 60 | uses: softprops/action-gh-release@v1 |
|
57 | 63 | name: ${{ steps.version.outputs.VERSION }} - ${{ github.event.head_commit.message }} |
58 | 64 | draft: true |
59 | 65 | files: | |
60 | | - redlib-${{ matrix.target }}.tar.gz |
| 66 | + redlib-aarch64-unknown-linux-musl.tar.gz |
61 | 67 | body: | |
62 | 68 | - ${{ github.event.head_commit.message }} ${{ github.sha }} |
63 | 69 | generate_release_notes: true |
0 commit comments