From d3ecbe79c6c30c997ade6f10339e033083a20ef1 Mon Sep 17 00:00:00 2001 From: Manawyrm Date: Thu, 29 Jun 2023 23:47:30 +0200 Subject: [PATCH] Add version info and working CI --- .github/workflows/main.yml | 3 ++- build_raspberry_pi.sh | 16 ++++++++++++++++ kiosk_skeleton/build.sh | 8 ++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1de786e..8e89e47 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,7 +32,8 @@ jobs: - name: Release build artifacts uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') - with: + with: + body_path: ./raspikiosk.version files: | ./raspikiosk.img.gz env: diff --git a/build_raspberry_pi.sh b/build_raspberry_pi.sh index decd944..1bdf0a2 100755 --- a/build_raspberry_pi.sh +++ b/build_raspberry_pi.sh @@ -6,11 +6,13 @@ export PATH=$PATH:/usr/sbin SCRIPT_DIR="$(dirname "$(realpath "$0")")" BUILD_DIR="${SCRIPT_DIR}/work/root/" +# cleanup any previous build attempts umount -fl "${BUILD_DIR}" || true losetup -D /dev/loop0 || true rm -rf "${BUILD_DIR}" || true mkdir -p "${BUILD_DIR}" +# download a modern RaspiOS build if [ ! -f raspios.img.xz ] then wget -O raspios.img.xz "https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2023-05-03/2023-05-03-raspios-bullseye-arm64-lite.img.xz" @@ -44,17 +46,31 @@ sudo mount /dev/loop0p1 "${BUILD_DIR}/boot" sudo rsync -a "${SCRIPT_DIR}/raspberry_pi_skeleton/." "${BUILD_DIR}" sudo rsync -a "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}/kiosk_skeleton" +# Make fstab read-only +sed -i 's/vfat defaults/vfat ro,defaults/g' "${BUILD_DIR}/etc/fstab" +sed -i 's/ext4 defaults/ext4 ro,defaults/g' "${BUILD_DIR}/etc/fstab" + +# Include git repo version info +echo -n "AnotterKiosk repository version: " > "${BUILD_DIR}/version-info" +git describe --abbrev=4 --dirty --always --tags >> "${BUILD_DIR}/version-info" +echo >> "${BUILD_DIR}/version-info" + # Mount system partitions (from the build host) sudo mount proc -t proc -o nosuid,noexec,nodev "${BUILD_DIR}/proc/" sudo mount sys -t sysfs -o nosuid,noexec,nodev,ro "${BUILD_DIR}/sys/" sudo mount devpts -t devtmpfs -o mode=0755,nosuid "${BUILD_DIR}/dev/" +# Raspbian currently ships only Debian 11. Let's upgrade to 12. sudo chroot "${BUILD_DIR}" /raspberry_pi_bullseye.sh + +# and then actually install everything. sudo chroot "${BUILD_DIR}" /kiosk_skeleton/build.sh sudo rm -r "${BUILD_DIR}/kiosk_skeleton" sudo rm "${BUILD_DIR}/raspberry_pi_bullseye.sh" +cp "${BUILD_DIR}/version-info" raspikiosk.version + sudo umount -fl "${BUILD_DIR}/proc" sudo umount -fl "${BUILD_DIR}/sys" sudo umount -fl "${BUILD_DIR}/dev" diff --git a/kiosk_skeleton/build.sh b/kiosk_skeleton/build.sh index 287a51e..04373f5 100755 --- a/kiosk_skeleton/build.sh +++ b/kiosk_skeleton/build.sh @@ -59,3 +59,11 @@ systemctl enable kiosk-set-hostname systemctl enable ntpdate systemctl enable lightdm systemctl enable nginx + +# generate a version info/build info file +echo -n "Chromium version: " >> /version-info +dpkg --list | grep "ii chromium " >> /version-info + +echo -n "Linux kernel version: " >> /version-info +ls /lib/modules/ >> /version-info +echo >> /version-info