#+TITLE: Radiantwave & KioskConfig Development & Release Pipeline #+AUTHOR: Neil C. #+DATE: 2026-06-23 #+OPTIONS: toc:nil num:nil #+TAGS: development nixos radiantwave kiosk automation * Radiant Wave * Full Pipeline Workflow (Detailed) ** Development Phase 1. Create a new branch for the issue 2. Implement the changes for the issue ** Integration to =dev= 3. Open a pull request to =dev= 4. CI: Run =nix build= to verify no errors 5. CI: Run linting and unit tests 6. CI: Auto-update =radiantwave-dev= flake input 7. CI: Build all =dev= VMs in parallel (Kiosk, Commercial, RPi) 8. Merge the pull request to =dev= after CI passes ** Testing Phase 9. Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM 10. Install =dev-iso= to a test machine and verify installation and application functionality ** Release to =main= 11. Open a pull request from =dev= to =main= 12. CI: Build all =main= VMs in parallel (Kiosk, Commercial, RPi) 13. CI: Build all ISO images in parallel 14. CI: Auto-rename ISO images to format =radiantwave-{system}-{YYYY-MM-DD}-{git-hash}.iso= 15. CI: Upload ISO images to file server 16. CI: Move old ISO images to =archives/= on file server 17. Merge the pull request to =main= after CI passes 18. Tag the release (optional, for traceability) * Automation Opportunities This section describes which parts of the workflow can be automated via CI/CD, and how. ** Group 1: Development Validation (Steps 3-8) - =What to automate=: PR triggering, =nix build=, linting, unit tests, flake updates, dev VM builds - =How=: GitHub Actions workflow triggered on PR to =dev= - =Why=: Catch integration errors before manual testing; ensure =dev= is always buildable ** Group 2: Testing (Steps 9-10) - =What to automate=: VM functionality testing, ISO installation verification - =How=: Scripted test suites, automated ISO installation in VMs - =Why=: Reduce manual toil; increase test coverage and consistency ** Group 3: Release Pipeline (Steps 11-16) - =What to automate=: Main VM/ISO builds, ISO renaming, file server uploads, archiving - =How=: GitHub Actions workflow triggered on PR to =main= - =Why=: Ensure consistent releases; eliminate human error in naming/uploading * Preflight Checklist - [ ] Create a new branch for the issue - [ ] Implement the changes for the issue - [ ] Open a pull request to =dev= - [ ] Merge the pull request to =dev= after CI passes - [ ] Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM - [ ] Install =dev-iso= to a test machine and verify installation and application functionality - [ ] Open a pull request from =dev= to =main= - [ ] Merge the pull request to =main= after CI passes - [ ] Tag the release (optional, for traceability) * Automation Task List ** Group 1: Development Validation - [ ] Set up GitHub Actions workflow for PRs to =dev= - [ ] Configure =nix build= step - [ ] Add linting and unit test steps - [ ] Add flake auto-update step - [ ] Configure parallel VM builds (Kiosk, Commercial, RPi) - [ ] Verify workflow blocks PR merge on failure ** Group 2: Testing - [ ] Create automated test scripts for VM functionality - [ ] Set up automated ISO installation testing - [ ] Integrate with CI for optional automated testing ** Group 3: Release Pipeline - [ ] Set up GitHub Actions workflow for PRs to =main= - [ ] Configure parallel VM builds - [ ] Configure parallel ISO builds - [ ] Add ISO auto-renaming step (using =git rev-parse HEAD= and =date +%Y-%m-%d=) - [ ] Add file server upload step (=rsync= or similar) - [ ] Add archive old ISOs step - [ ] Verify workflow blocks PR merge on failure