Create Gitea actions
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# This workflow generates dev-iso any time RadiantWave is updated.
|
||||
# When RadiantWave recieves a PR, a workflow is triggered that builds
|
||||
# the application. If that succeeds, then this workflow is triggered
|
||||
# to build the dev-iso for testing on a dev machine. The iso image is
|
||||
# spit into /ssd/radiantwave/builds/ and is timestamped.
|
||||
#
|
||||
# This action is not meant to be run any time code is pushed to
|
||||
# KioskConfig, instead, it is strictly a "response" action.
|
||||
#
|
||||
# Remember: KioskConfig only has the main branch, because
|
||||
# the split between production and development happens
|
||||
# at the system closure level, not at the branch level of
|
||||
# this repository.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
repository_dispatch:
|
||||
types:
|
||||
- radiantwave-dev-built
|
||||
jobs:
|
||||
update-and-build:
|
||||
runs-on: neils-server-runner
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.TOKEN }}
|
||||
|
||||
- name: Update radiantwave-dev
|
||||
run: |
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||
nix flake update radiantwave-dev
|
||||
|
||||
# This builds the system closure
|
||||
- name: Build dev VM
|
||||
run: |
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||
nix build -L .#nixosConfigurations.radiantwavekiosk-dev.config.system.build.toplevel
|
||||
|
||||
# If the closure builds, it's valid, even if incorrect and something is wrong.
|
||||
# That's why we build the ISO next, even for the dev branch, for testing
|
||||
- name: Build dev ISO
|
||||
run: |
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||
nix build -L .#nixosConfigurations.dev-iso.config.system.build.isoImage
|
||||
cp -rL result/iso/*.iso /ssd/radiantwave/build/radiantwave-kiosk-iso-dev-$(date +%Y-%m-%d_%H-%M-%S)
|
||||
|
||||
- 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.FORGEJO_TOKEN }}@gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git
|
||||
git add flake.lock
|
||||
git commit -m "chore: update radiantwave-dev to latest dev" || echo "Nothing to commit"
|
||||
git push
|
||||
|
||||
- name: Copy ISO to fileserver
|
||||
scp result/images/* radiantwave-infra:/mnt/infrastructure_data/files/images/
|
||||
|
||||
- name: Notify
|
||||
if: always()
|
||||
uses: https://github.com/dawidd6/action-send-mail@v3
|
||||
with:
|
||||
server_address: smtp.gmail.com
|
||||
server_port: 465
|
||||
username: ${{ secrets.MAIL_USERNAME }}
|
||||
password: ${{ secrets.MAIL_PASSWORD }}
|
||||
subject: "${{ job.status == 'success' && '✅' || '❌' }} KioskConfig dev build ${{ job.status }}"
|
||||
to: nclack@radiantwavetech.com
|
||||
from: ci@radiantwavetech.com
|
||||
body: "KioskConfig dev build ${{ job.status }} — radiantwave-dev updated and arstifacts copied to /ssd/radiantwave/build/"
|
||||
Reference in New Issue
Block a user