164 lines
4.7 KiB
Markdown
164 lines
4.7 KiB
Markdown
# Nightly Branch Automation & Package Creation Plan
|
|
|
|
This document details the implementation plan for adding a new `nightly` branch between `development` and `main`, with automated merging and package creation.
|
|
|
|
**Date Created:** 2026-01-13
|
|
**Status:** Planning Phase
|
|
**Priority:** High
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
**See full detailed specification in:** [Nightly Branch Implementation Specification](./nightly_branch_implementation.md)
|
|
|
|
This file contains only the executive summary. The complete 2800+ line specification includes:
|
|
|
|
- Current workflow analysis
|
|
- Branch hierarchy design
|
|
- 7-phase implementation plan
|
|
- Complete workflow files
|
|
- Testing strategies
|
|
- Rollback procedures
|
|
- Troubleshooting guides
|
|
|
|
---
|
|
|
|
## Executive Summary
|
|
|
|
**Objective:** Add a `nightly` branch between `development` and `main` to create a stabilization layer with automated builds.
|
|
|
|
**Key Changes Required:**
|
|
|
|
1. Update `.github/workflows/propagate-changes.yml` (fix line 149, enable line 151-152)
|
|
2. Create `.github/workflows/nightly-build.yml` (new workflow for nightly packages)
|
|
3. Update `.github/workflows/docker-build.yml` (add nightly branch support)
|
|
4. Update `.github/workflows/supply-chain-verify.yml` (add nightly tag handling)
|
|
5. Configure branch protection for nightly branch
|
|
6. Update documentation (README.md, VERSION.md, CONTRIBUTING.md)
|
|
|
|
**Branch Flow:**
|
|
|
|
```
|
|
feature/* → development → nightly → main (tagged releases)
|
|
```
|
|
|
|
**Automation:**
|
|
|
|
- `development` → `nightly`: Auto-merge via workflow
|
|
- `nightly` → `main`: Manual PR with full review
|
|
- `nightly`: Daily builds + packages at 02:00 UTC
|
|
|
|
**Package Artifacts:**
|
|
|
|
- Docker images: `nightly`, `nightly-{date}`, `nightly-{sha}`
|
|
- Cross-compiled binaries (Linux, Windows, macOS)
|
|
- Linux packages (deb, rpm)
|
|
- SBOM and vulnerability reports
|
|
|
|
---
|
|
|
|
## Implementation Phases
|
|
|
|
### Phase 1: Update Propagate Workflow ⚡ URGENT
|
|
|
|
**File:** `.github/workflows/propagate-changes.yml`
|
|
|
|
- Fix line 149: Remove third parameter from `createPR` call
|
|
- Enable line 151-152: Uncomment `development` → `nightly` propagation
|
|
|
|
### Phase 2: Create Nightly Build Workflow
|
|
|
|
**File:** `.github/workflows/nightly-build.yml` (NEW)
|
|
|
|
- Triggers: Push to nightly, scheduled daily at 02:00 UTC
|
|
- Jobs: build-and-push, test-image, build-release, verify-supply-chain
|
|
|
|
### Phase 3: Update Docker Build
|
|
|
|
**File:** `.github/workflows/docker-build.yml`
|
|
|
|
- Add `nightly` to trigger branches
|
|
- Add `nightly` tag to metadata action
|
|
- Update test-image tag determination
|
|
|
|
### Phase 4: Update Supply Chain Verification
|
|
|
|
**File:** `.github/workflows/supply-chain-verify.yml`
|
|
|
|
- Add `nightly` branch handling in tag determination
|
|
|
|
### Phase 5: Configuration Files
|
|
|
|
- Review `.gitignore`, `.dockerignore`, `Dockerfile` (no changes needed)
|
|
- Optionally create `codecov.yml`
|
|
- Update `.github/propagate-config.yml`
|
|
|
|
### Phase 6: Branch Protection
|
|
|
|
- Create nightly branch from development
|
|
- Configure protection rules (allow force pushes, require status checks)
|
|
|
|
### Phase 7: Documentation
|
|
|
|
- Update `README.md` with nightly info
|
|
- Update `VERSION.md` with nightly section
|
|
- Update `CONTRIBUTING.md` with workflow
|
|
|
|
---
|
|
|
|
## Files to Modify
|
|
|
|
| File | Action | Priority |
|
|
|------|--------|----------|
|
|
| `.github/workflows/propagate-changes.yml` | Edit (2 lines) | P0 |
|
|
| `.github/workflows/nightly-build.yml` | Create (new) | P1 |
|
|
| `.github/workflows/docker-build.yml` | Edit (3 locations) | P1 |
|
|
| `.github/workflows/supply-chain-verify.yml` | Edit (1 location) | P2 |
|
|
| `.github/propagate-config.yml` | Edit (optional) | P3 |
|
|
| `README.md` | Edit | P3 |
|
|
| `VERSION.md` | Edit | P3 |
|
|
| `CONTRIBUTING.md` | Edit | P3 |
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
|
|
1. ✅ Development → nightly auto-merge completes in <5 minutes
|
|
2. ✅ Nightly Docker builds complete in <25 minutes
|
|
3. ✅ Build success rate >95% over 30 days
|
|
4. ✅ Zero critical vulnerabilities in nightly builds
|
|
5. ✅ SBOM generation success rate 100%
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. Read the full specification in `./nightly_branch_implementation.md`
|
|
2. Review current workflows to understand integration points
|
|
3. Create implementation branch: `feature/nightly-branch-automation`
|
|
4. Implement Phase 1 (propagate workflow fix)
|
|
5. Test locally with workflow triggers
|
|
6. Deploy remaining phases incrementally
|
|
|
|
---
|
|
|
|
## Timeline Estimate
|
|
|
|
| Phase | Effort | Duration |
|
|
|-------|--------|----------|
|
|
| Phase 1 | 30 min | Day 1 |
|
|
| Phase 2 | 2 hours | Day 1-2 |
|
|
| Phase 3 | 30 min | Day 2 |
|
|
| Phase 4 | 30 min | Day 2 |
|
|
| Phase 5 | 1 hour | Day 2 |
|
|
| Phase 6 | 30 min | Day 3 |
|
|
| Phase 7 | 1 hour | Day 3 |
|
|
| Testing | 4 hours | Day 3-4 |
|
|
| **Total** | **~10 hours** | **3-4 days** |
|
|
|
|
---
|
|
|
|
**For complete details, workflows, scripts, and troubleshooting guides, see:**
|
|
**[nightly_branch_implementation.md](./nightly_branch_implementation.md)**
|