Files
KioskConfig/.gitea/workflows/build-prod.yml
T

134 lines
5.0 KiB
YAML

on:
push:
branches:
- main
workflow_dispatch:
jobs:
update-and-build:
runs-on: build-server
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Update radiantwave
run: |
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix flake update radiantwave
- name: Prepare output directory
run: mkdir -p /home/user/radiantwave
# --- Kiosk ISO ---
- name: Build kiosk ISO
run: |
export NIXPKGS_ALLOW_UNFREE=1
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix build -L --impure .#nixosConfigurations.kiosk-iso.config.system.build.isoImage
- name: Rename kiosk ISO
run: |
ISO_DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILENAME="radiantwave-iso-${ISO_DATE}.iso"
cp -L result/iso/*.iso "/home/user/radiantwave/${FILENAME}"
echo "KIOSK_ISO_FILENAME=${FILENAME}" >> "$GITHUB_ENV"
- name: Copy kiosk ISO to fileserver
run: |
scp "/home/user/radiantwave/${KIOSK_ISO_FILENAME}" \
radiantwave-infra:/mnt/infrastructure_data/files/images/
- name: Cleanup kiosk ISO
run: rm -f "/home/user/radiantwave/${KIOSK_ISO_FILENAME}"
# --- Android Kiosk ISO ---
- name: Build android kiosk ISO
run: |
export NIXPKGS_ALLOW_UNFREE=1
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix build -L --impure .#nixosConfigurations.android-iso.config.system.build.isoImage
- name: Rename android kiosk ISO
run: |
ISO_DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILENAME="radiantwave-android-iso-${ISO_DATE}.iso"
cp -L result/iso/*.iso "/home/user/radiantwave/${FILENAME}"
echo "ANDROID_ISO_FILENAME=${FILENAME}" >> "$GITHUB_ENV"
- name: Copy android kiosk ISO to fileserver
run: |
scp "/home/user/radiantwave/${ANDROID_ISO_FILENAME}" \
radiantwave-infra:/mnt/infrastructure_data/files/images/
- name: Cleanup android kiosk ISO
run: rm -f "/home/user/radiantwave/${ANDROID_ISO_FILENAME}"
# --- Commercial Kiosk ISO ---
- name: Build commercial kiosk ISO
run: |
export NIXPKGS_ALLOW_UNFREE=1
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix build -L --impure .#nixosConfigurations.commercial-iso.config.system.build.isoImage
- name: Rename commercial kiosk ISO
run: |
ISO_DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILENAME="radiantwave-commercial-iso-${ISO_DATE}.iso"
cp -L result/iso/*.iso "/home/user/radiantwave/${FILENAME}"
echo "COMMERCIAL_ISO_FILENAME=${FILENAME}" >> "$GITHUB_ENV"
- name: Copy commercial kiosk ISO to fileserver
run: |
scp "/home/user/radiantwave/${COMMERCIAL_ISO_FILENAME}" \
radiantwave-infra:/mnt/infrastructure_data/files/images/
- name: Cleanup commercial kiosk ISO
run: rm -f "/home/user/radiantwave/${COMMERCIAL_ISO_FILENAME}"
# --- Raspberry Pi image (disabled for speed, for now) ---
# - name: Build Raspberry Pi image
# run: |
# export NIXPKGS_ALLOW_UNFREE=1
# . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
# nix build -L --impure .#nixosConfigurations.radiantwavekiosk-rpi.config.system.build.sdImage
#
# - name: Rename Raspberry Pi image
# run: |
# ISO_DATE=$(date +%Y-%m-%d_%H-%M-%S)
# FILENAME="radiantwave-rpi-${ISO_DATE}.img.zst"
# cp -L result/sd-image/*.img.zst "/home/user/radiantwave/${FILENAME}"
# echo "RPI_IMAGE_FILENAME=${FILENAME}" >> "$GITHUB_ENV"
#
# - name: Copy Raspberry Pi image to fileserver
# run: |
# scp "/home/user/radiantwave/${RPI_IMAGE_FILENAME}" \
# radiantwave-infra:/mnt/infrastructure_data/files/images/
#
# - name: Cleanup Raspberry Pi image
# run: rm -f "/home/user/radiantwave/${RPI_IMAGE_FILENAME}"
- name: Commit updated flake.lock
run: |
git config user.email "ci@radiantwavetech.com"
git config user.name "RadiantWave CI"
git remote set-url origin https://oauth2:${{ secrets.GIT_TOKEN }}@gitea.radiantwavetech.com/RadiantWaveTech/kioskconfig.git
git add flake.lock
git commit -m "chore: update radiantwave-dev to latest" || echo "Nothing to commit"
git push
# - name: Notify
# if: always()
# uses: https://github.com/dawidd6/action-send-mail@v3
# with:
# server_address: smtp.gmail.com
# server_port: 587
# username: ${{ secrets.MAIL_USERNAME }}
# password: ${{ secrets.MAIL_PASSWORD }}
# subject: "${{ job.status == 'success' && '✅' || '❌' }} KioskConfig main build ${{ job.status }}"
# to: nclack@radiantwavetech.com
# from: ci@radiantwavetech.com
# body: "KioskConfig main build ${{ job.status }} — radiantwave updated and artifacts copied."