Close Dagger CI plan (Phases 1-3 complete) (#165)
## Summary - Move `adopt-dagger-ci.md` to new `docs/how-to/plans/completed/` archive - Update plan status to "Phases 1–3 complete" with all verification checklists checked - Update runner description to reflect what actually stayed (Docker CLI, Node.js needed) - Document known issue: changelog dates still show UTC - Create completed plans index, update plans and how-to indexes - Changelog fragment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/165
This commit is contained in:
parent
9e0487b523
commit
1fd54dbab7
5 changed files with 35 additions and 13 deletions
|
|
@ -10,7 +10,7 @@ tags:
|
|||
|
||||
# Plan: Adopt Dagger as CI/CD Build Engine
|
||||
|
||||
> **Status:** Phase 3 implemented
|
||||
> **Status:** Phases 1–3 complete
|
||||
|
||||
## Background
|
||||
|
||||
|
|
@ -429,13 +429,15 @@ The `forgejo-runner` container (at `containers/forgejo-runner/`) bundles:
|
|||
|
||||
### Simplified Runner
|
||||
|
||||
With Dagger, the runner only needs:
|
||||
- Docker (for the Dagger engine — already available via DinD sidecar)
|
||||
With Dagger, the runner needs:
|
||||
- Docker CLI (Dagger shells out to `docker` to provision its BuildKit engine)
|
||||
- The `dagger` CLI binary
|
||||
- Node.js (required by `actions/checkout@v4` and other JavaScript Actions)
|
||||
- Git (for checkout)
|
||||
- Basic shell utilities
|
||||
- ArgoCD CLI, uv, flyctl (used directly in workflow steps)
|
||||
- Basic shell utilities and tzdata
|
||||
|
||||
All other tools (Node.js, skopeo, argocd, Python, npm) live inside the Dagger containers defined by the module. Adding a new tool to a build never requires rebuilding the runner image.
|
||||
Removed from the pre-Dagger image: Docker buildx plugin, skopeo, lsb-release, xz-utils. These tools now live inside Dagger containers.
|
||||
|
||||
### Implementation
|
||||
|
||||
|
|
@ -502,14 +504,18 @@ BuildKit caches aggressively, making repeated builds fast. Since the Forgejo run
|
|||
- [ ] ~~`dagger call release-docs` uploads to Forgejo packages successfully~~ (deferred — artifact hosting stays on Forgejo Releases)
|
||||
- [ ] ~~Quartz container starts and serves docs from Forgejo packages URL~~ (deferred)
|
||||
- [ ] ~~ArgoCD sync works from within Dagger~~ (deferred)
|
||||
- [ ] Forgejo Actions workflow_dispatch completes full release cycle
|
||||
- [ ] CHANGELOG.md and fragment cleanup committed correctly
|
||||
- [x] Forgejo Actions workflow_dispatch completes full release cycle
|
||||
- [x] CHANGELOG.md and fragment cleanup committed correctly
|
||||
|
||||
### Phase 3 (Runner)
|
||||
- [ ] Simplified runner image builds and runs
|
||||
- [ ] Dagger engine starts inside the runner's DinD environment
|
||||
- [ ] All existing workflows pass with the simplified runner
|
||||
- [ ] TZ=America/Los_Angeles works in job containers (tzdata installed)
|
||||
- [x] Simplified runner image builds and runs (forgejo-runner v3.0.2)
|
||||
- [x] Dagger engine starts inside the runner's DinD environment
|
||||
- [x] All existing workflows pass with the simplified runner
|
||||
- [x] TZ=America/Los_Angeles works in job containers (tzdata installed)
|
||||
|
||||
### Known Issues
|
||||
|
||||
- **Changelog dates show UTC date:** Towncrier uses `datetime.date.today()` which respects `TZ`, and `tzdata` is installed in the runner image, but the changelog still renders tomorrow's date (UTC). The runner pod and job containers both have `TZ=America/Los_Angeles` set. Root cause is unresolved — may require passing an explicit `--date` flag to towncrier or patching the Dagger `build_changelog` container.
|
||||
|
||||
## How-To Articles to Write
|
||||
|
||||
15
docs/how-to/plans/completed/completed.md
Normal file
15
docs/how-to/plans/completed/completed.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: Completed Plans
|
||||
modified: 2026-02-11
|
||||
tags:
|
||||
- how-to
|
||||
- plans
|
||||
---
|
||||
|
||||
# Completed Plans
|
||||
|
||||
Plans that have been fully implemented and verified. Kept for historical reference and as templates for future plans.
|
||||
|
||||
| Plan | Completed | Description |
|
||||
|------|-----------|-------------|
|
||||
| [[adopt-dagger-ci]] | 2026-02-11 | Adopt Dagger as CI/CD build engine (Phases 1–3) |
|
||||
|
|
@ -10,13 +10,12 @@ tags:
|
|||
|
||||
Migration and transition plans for upcoming infrastructure changes. Each plan is a how-to document that captures the full context, steps, and verification criteria for a future execution session.
|
||||
|
||||
Plans differ from regular how-to guides in that they describe work that has been designed but not yet executed. Once a plan is completed, it may be archived or converted into a standard how-to guide.
|
||||
Plans differ from regular how-to guides in that they describe work that has been designed but not yet executed. Once a plan is completed, it moves to [[completed]].
|
||||
|
||||
| Plan | Status | Description |
|
||||
|------|--------|-------------|
|
||||
| [[migrate-forgejo-from-brew]] | Planned | Transition Forgejo from Homebrew to source-built binary with LaunchAgent |
|
||||
| [[add-unifi-pulumi-stack]] | Planned | Add Pulumi IaC for UniFi Express 7 home network |
|
||||
| [[adopt-dagger-ci]] | Planned | Adopt Dagger as CI/CD build engine, migrate docs artifacts to Forgejo packages |
|
||||
| [[upstream-fork-strategy]] | Planned | Stacked-branch forking strategy for tracking upstream projects |
|
||||
| [[adopt-oidc-provider]] | Planning | Deploy OIDC identity provider for SSO across services |
|
||||
| [[harden-zot-registry]] | Planned | Add authentication and tag immutability to zot registry |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue