363e6f81f67a06e586501b8c650d359930663f6d
network.init() no longer panics when D-Bus is unavailable (logs warning instead). This allows go test to run in the nix build sandbox. checkState() now calls computeState() which returns the target state without triggering page navigation (which requires OpenGL). Tests call computeState() directly, avoiding the SIGSEGV from gl.GenVertexArrays. 7 regression tests for state machine, all passing.
Radiantwave & KioskConfig Development & Release Pipeline
Radiant Wave
Full Pipeline Workflow (Detailed)
Development Phase
- Create a new branch for the issue
- Implement the changes for the issue
Integration to dev
- Open a pull request to
dev - CI: Run
nix buildto verify no errors - CI: Run linting and unit tests
- CI: Auto-update
rhemawave-devflake input - CI: Build all
devVMs in parallel (Kiosk, Commercial, RPi) - Merge the pull request to
devafter CI passes
Testing Phase
- Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM
- Install
dev-isoto a test machine and verify installation and application functionality
Release to main
- Open a pull request from
devtomain - CI: Build all
mainVMs in parallel (Kiosk, Commercial, RPi) - CI: Build all ISO images in parallel
- CI: Auto-rename ISO images to format
radiantwave-{system}-{YYYY-MM-DD}-{git-hash}.iso - CI: Upload ISO images to file server
- CI: Move old ISO images to
archives/on file server - Merge the pull request to
mainafter CI passes - 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 buildsHow: GitHub Actions workflow triggered on PR todevWhy: Catch integration errors before manual testing; ensuredevis always buildable
Group 2: Testing (Steps 9-10)
What to automate: VM functionality testing, ISO installation verificationHow: Scripted test suites, automated ISO installation in VMsWhy: 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, archivingHow: GitHub Actions workflow triggered on PR tomainWhy: 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
devafter CI passes - Run all VMs (Kiosk, Commercial, RPi) and test all functionality of the application on each VM
- Install
dev-isoto a test machine and verify installation and application functionality - Open a pull request from
devtomain - Merge the pull request to
mainafter 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 buildstep - Add linting and unit test steps
- Add flake auto-update step
- Configure parallel VM builds (Kiosk, Commercial, RPi)
- Configure
- 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 HEADanddate +%Y-%m-%d) - Add file server upload step (
rsyncor similar) - Add archive old ISOs step
- Verify workflow blocks PR merge on failure
Languages
Go
86.1%
Shell
4.9%
Python
4.5%
Nix
2.5%
HTML
1.4%
Other
0.6%