From a4c1268ee00b6ce15517195ebe25ca12c225e616 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Thu, 2 Jan 2025 12:32:15 +0100 Subject: [PATCH] ARM CI: use GH runner ubuntu-22.04 Use runner ubuntu-22.04 instead of ubuntu-latest. Because ubuntu-latest has switched to ubuntu-24.04 recently, whiich breaks the build for arm64. There seem to be an unresolved bug in QEMU >= 8.1 (U24.04 has v8.2.2) when using ARM64 and bullseye: . (ARM64 buster and bookworm, as well as ARMHF, may be fine as indicated in the bug description.) This can be reverted later (either when fixed in QEMU or when switched the chroot to bookworm). But it shouldn't matter much, anyways, since this is just the "host" environment. Also include runner ver in chroot key because it seem to make a difference from the above.. --- .github/scripts/environment.sh | 3 +++ .github/workflows/arm-build.yml | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/scripts/environment.sh b/.github/scripts/environment.sh index 6f3510190..207cafc43 100644 --- a/.github/scripts/environment.sh +++ b/.github/scripts/environment.sh @@ -107,6 +107,9 @@ if ! is_arm; then fi printf '%b' "FEATURES=$FEATURES\n" >> "$GITHUB_ENV" +# populate /etc/environment-defined var to global env +# shellcheck disable=SC2154 # defined by runner in /etc/environment +printf '%b' "ImageOS=$ImageOS\n" >> "$GITHUB_ENV" if [ "$(uname -s)" = Darwin ] && [ "$(uname -m)" != arm64 ]; then export UG_ARCH=-msse4.2 diff --git a/.github/workflows/arm-build.yml b/.github/workflows/arm-build.yml index 57ae80000..79b4c9870 100644 --- a/.github/workflows/arm-build.yml +++ b/.github/workflows/arm-build.yml @@ -11,7 +11,7 @@ on: jobs: Build: if: github.repository == 'CESNET/UltraGrid' || github.event.schedule == null - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 # TODO: see the commit message why 22.04 is explicit strategy: matrix: arch: [armhf, arm64] @@ -55,7 +55,9 @@ jobs: uses: actions/cache@main with: path: '~/chroot.tar' - key: cache-bootstrap-${{ matrix.arch }}-${{ hashFiles('.github/scripts/Linux/arm/bootstrap.sh', '.github/scripts/Linux/install_others.sh') }} + key: cache-bootstrap-${{ env.ImageOS }}-${{ matrix.arch }}-${{ + hashFiles('.github/scripts/Linux/arm/bootstrap.sh', + '.github/scripts/Linux/install_others.sh') }} - name: Debootstrap if: steps.cache-bootstrap.outputs.cache-hit != 'true' run: |