90 lines
3.6 KiB
Org Mode
90 lines
3.6 KiB
Org Mode
#+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 |