Files
rothmanandClaude Opus 5.5 f8303754f7 Releases on Gitea, one-line installer and auto-update (1.1.0)
- .github/workflows/release.yml: a tag vX.Y.Z runs the tests, publishes
  daynivo-kiosk-os-X.Y.Z.tar.gz (+ .sha256) and install-online.sh as a
  Gitea release, then builds the SD image with pi-gen and attaches it.
- install-online.sh: curl | sudo bash installer for the latest release.
- voxip-kiosk-updater: checks the latest release, verifies and unpacks a
  newer one under /opt/daynivo-kiosk-os and runs its update.sh. A daily
  timer checks around 03:00 and installs when auto_update is on.
- Web interface: Systeem -> Software-updates with the auto-update switch,
  check now and install now (helper verbs update-check / update-install).
- CI checks out with plain git, so it runs on Gitea's act_runner too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:30:34 +01:00

78 lines
3.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gitea Actions: a tag vX.Y.Z (matching VERSION) becomes a release with
# daynivo-kiosk-os-X.Y.Z.tar.gz (+ .sha256) installed by install-online.sh and the updater
# install-online.sh the one-line installer
# <date>-daynivo-kiosk-os-X.Y.Z.img.xz (+ .sha256), built afterwards (30–90+ minutes)
#
# Runner requirements: act_runner with the "ubuntu-latest" label, and for the
# image job `container.privileged: true` in its config (pi-gen needs loop
# devices and binfmt_misc). A secret RELEASE_TOKEN (repository write access)
# is used when set, otherwise the job's own token.
name: Release
on:
push:
tags: ["v*"]
env:
GITEA_API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }}
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITEA_TOKEN }}
jobs:
package:
runs-on: ubuntu-latest
container: debian:bookworm
steps:
- name: Tools
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates curl git python3 python3-flask python3-argon2 python3-websocket python3-pytest shellcheck
- name: Checkout
# Plain git: JavaScript actions need Node, which debian:bookworm doesn't have.
run: git clone --depth 1 --branch "${{ github.ref_name }}" "${{ github.server_url }}/${{ github.repository }}.git" src
- name: Tag matches VERSION
working-directory: src
run: test "v$(tr -d '[:space:]' < VERSION)" = "${{ github.ref_name }}"
- name: Tests
working-directory: src
run: |
python3 -m pytest -q -p no:cacheprovider
shellcheck -S warning install.sh install-online.sh update.sh uninstall.sh tools/release-upload.sh image/build.sh
- name: Package
working-directory: src
run: |
V="$(tr -d '[:space:]' < VERSION)"
mkdir -p ../dist
git archive --prefix="daynivo-kiosk-os-$V/" -o "../dist/daynivo-kiosk-os-$V.tar.gz" HEAD
(cd ../dist && sha256sum "daynivo-kiosk-os-$V.tar.gz" > "daynivo-kiosk-os-$V.tar.gz.sha256")
cp install-online.sh ../dist/
- name: Publish
run: src/tools/release-upload.sh "${{ github.ref_name }}" dist/*
image:
needs: package
runs-on: ubuntu-latest
container:
image: debian:bookworm
options: --privileged
timeout-minutes: 360
steps:
- name: Tools (pi-gen)
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates curl git python3 openssl coreutils quilt parted qemu-user-static binfmt-support \
debootstrap zerofree zip dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file bc gpg \
pigz xxd arch-test bmap-tools kmod fdisk udev
- name: Enable ARM emulation
run: |
mountpoint -q /proc/sys/fs/binfmt_misc || mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
update-binfmts --enable qemu-arm
- name: Checkout
run: git clone --depth 1 --branch "${{ github.ref_name }}" "${{ github.server_url }}/${{ github.repository }}.git" src
- name: Build image
working-directory: src
run: ./image/build.sh --native
- name: Publish
run: src/tools/release-upload.sh "${{ github.ref_name }}" src/image/deploy/*.img.xz src/image/deploy/*.img.xz.sha256