ci: bump action versions to latest + add QEMU arm64 binfmt for pi-gen

Real cause of last pi-gen failure was surfaced by verbose-output:
  WARNING: Only a native build environment is supported.
  arm64: not supported on this machine/kernel

ubuntu-latest is x86_64; pi-gen builds an arm64 image and chroots into
it during stages, requiring binfmt_misc handlers for arm64. Add
docker/setup-qemu-action before the pi-gen step.

While here, audit + bump every action version (pinned to current
majors):
  actions/checkout            v4 → v6
  actions/upload-artifact     v4 → v7
  actions/download-artifact   v4 → v8
  softprops/action-gh-release v2 → v3
  docker/setup-qemu-action    @v4 (new)
  usimd/pi-gen-action         @v1 (already current major)
  dtolnay/rust-toolchain      @stable (rolling channel — keep)
This commit is contained in:
Mitchell R 2026-05-20 00:11:45 +02:00
parent 0f664fe1c1
commit 3746f685be
No known key found for this signature in database
2 changed files with 15 additions and 7 deletions

View file

@ -62,7 +62,7 @@ jobs:
ca-certificates curl git build-essential pkg-config jq sudo ca-certificates curl git build-essential pkg-config jq sudo
git config --global --add safe.directory '*' git config --global --add safe.directory '*'
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ inputs.ref }} ref: ${{ inputs.ref }}
@ -91,7 +91,7 @@ jobs:
betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }} betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }}
- name: Upload to GitHub Release (binary) - name: Upload to GitHub Release (binary)
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v3
with: with:
tag_name: ${{ inputs.tag }} tag_name: ${{ inputs.tag }}
files: kiosk/betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }} files: kiosk/betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }}
@ -118,7 +118,7 @@ jobs:
"${BF_AUTOIMPORT_URL}/api/admin/firmware/import" "${BF_AUTOIMPORT_URL}/api/admin/firmware/import"
- name: Upload artifact (always) - name: Upload artifact (always)
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: betterframe-kiosk-${{ matrix.target }} name: betterframe-kiosk-${{ matrix.target }}
path: kiosk/betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }} path: kiosk/betterframe-kiosk-${{ inputs.version }}-${{ matrix.target }}
@ -130,12 +130,12 @@ jobs:
needs: binary needs: binary
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
ref: ${{ inputs.ref }} ref: ${{ inputs.ref }}
- name: Pull kiosk aarch64 binary from this run's artifact - name: Pull kiosk aarch64 binary from this run's artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v8
with: with:
name: betterframe-kiosk-aarch64-unknown-linux-gnu name: betterframe-kiosk-aarch64-unknown-linux-gnu
path: staging/ path: staging/
@ -168,6 +168,14 @@ jobs:
deploy/pi-gen/stage-betterframe-client/01-install-kiosk/files/ deploy/pi-gen/stage-betterframe-client/01-install-kiosk/files/
chmod +x deploy/pi-gen/stage-betterframe-client/01-install-kiosk/00-run-chroot.sh chmod +x deploy/pi-gen/stage-betterframe-client/01-install-kiosk/00-run-chroot.sh
# x86 runner can't natively execute the arm64 binaries pi-gen drops
# into the chroot. Register QEMU binfmt_misc handlers so the chroot's
# arm64 dpkg / apt-get / etc work transparently.
- name: Register QEMU binfmt for arm64
uses: docker/setup-qemu-action@v4
with:
platforms: arm64
- name: Build Pi image (pi-gen) - name: Build Pi image (pi-gen)
uses: usimd/pi-gen-action@v1 uses: usimd/pi-gen-action@v1
with: with:
@ -189,7 +197,7 @@ jobs:
run: ls -la deploy/ || true run: ls -la deploy/ || true
- name: Upload image to GitHub Release - name: Upload image to GitHub Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v3
with: with:
tag_name: ${{ inputs.tag }} tag_name: ${{ inputs.tag }}
files: | files: |

View file

@ -43,7 +43,7 @@ jobs:
ref: ${{ steps.compute.outputs.ref }} ref: ${{ steps.compute.outputs.ref }}
build_image: ${{ steps.compute.outputs.build_image }} build_image: ${{ steps.compute.outputs.build_image }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
fetch-depth: 0 # need tags for git describe fetch-depth: 0 # need tags for git describe