From ce0029647db9edcfb23be933dd617bb6027d37b2 Mon Sep 17 00:00:00 2001 From: MAY4VFX Date: Thu, 25 Jun 2026 18:41:42 +0300 Subject: [PATCH] ci: add aarch64 (arm64) Linux release build Build the aarch64-unknown-linux-gnu target natively on GitHub's free ubuntu-24.04-arm runner. The existing gtk4-rs container is amd64-only, so aarch64 runs without a container and installs GTK4/libadwaita via apt. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release.yml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cef67566..c6790fff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,19 +16,31 @@ jobs: - os: ubuntu-latest target: x86_64-unknown-linux-gnu archive: tar.gz + container: ghcr.io/gtk-rs/gtk4-rs/gtk4:latest + - os: ubuntu-24.04-arm + target: aarch64-unknown-linux-gnu + archive: tar.gz + container: "" runs-on: ${{ matrix.os }} - container: - image: ghcr.io/gtk-rs/gtk4-rs/gtk4:latest + # x86_64 builds in the gtk4-rs Fedora container (yum); aarch64 runs natively + # on GitHub's free arm64 runner with GTK installed via apt (empty container). + container: ${{ matrix.container }} permissions: contents: write steps: - - name: Install dependencies - if: matrix.os == 'ubuntu-latest' + - name: Install dependencies (Fedora container, x86_64) + if: matrix.container != '' run: yum install -y gtk4-devel libadwaita-devel + - name: Install dependencies (Ubuntu host, aarch64) + if: matrix.container == '' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-4-dev libadwaita-1-dev + - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable @@ -42,7 +54,6 @@ jobs: run: cargo build --release --locked --target ${{ matrix.target }} --features ci-release - name: Pack Artifacts - if: matrix.os == 'ubuntu-latest' env: RELEASE_NAME: satty-${{ matrix.target }} ARTIFACTS_DIR: target/${{ matrix.target }}/release