on: workflow_dispatch: jobs: update-and-build: runs-on: build-server steps: - name: Checkout uses: https://github.com/actions/checkout@v4 - 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."