Files
radiantwave/archive/README.org
T
2026-08-07 14:51:41 -05:00

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 =rhemawave-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