CI for both apps and the Rust crates, image publishing to GHCR, and the arm64 kiosk package build.
56 lines
1.7 KiB
YAML
56 lines
1.7 KiB
YAML
name: Release
|
|
|
|
# Container images are published separately by publish-images.yml. This builds the kiosk
|
|
# package for the Pi, which needs an arm64 toolchain rather than a Docker build.
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
kiosk-deb:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: docker/setup-qemu-action@v3
|
|
with:
|
|
platforms: arm64
|
|
|
|
- name: Build the kiosk bundle for arm64
|
|
run: |
|
|
docker run --rm --platform linux/arm64 \
|
|
-v "$PWD:/work" -w /work \
|
|
arm64v8/debian:bookworm \
|
|
bash -eux -c '
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends \
|
|
curl ca-certificates unzip build-essential file wget \
|
|
libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev \
|
|
libayatana-appindicator3-dev libssl-dev patchelf pkg-config
|
|
|
|
curl -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal
|
|
. "$HOME/.cargo/env"
|
|
|
|
curl -fsSL https://bun.sh/install | bash
|
|
export PATH="$HOME/.bun/bin:$PATH"
|
|
|
|
bun install
|
|
export PATH="/work/node_modules/.bin:$PATH"
|
|
bun run build:kiosk
|
|
'
|
|
|
|
- name: Collect artifacts
|
|
run: |
|
|
mkdir -p dist
|
|
find apps/kiosk-client/src-tauri/target/release/bundle -name '*.deb' -exec cp {} dist/ \;
|
|
find apps/kiosk-client/src-tauri/target/release/bundle -name '*.AppImage' -exec cp {} dist/ \;
|
|
ls -lh dist
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: pistation-kiosk-arm64
|
|
path: dist/*
|
|
if-no-files-found: error
|