From e018751e1444fa2477b29d3e25ef4bdc4001ce4e Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Wed, 11 Feb 2026 18:03:03 -0800 Subject: [PATCH] Close Dagger CI plan (Phases 1-3 complete) Move adopt-dagger-ci to completed plans archive. Update verification checklists, runner description, and add known issue for changelog timezone. Create completed plans index. Co-Authored-By: Claude Opus 4.6 --- docs/changelog.d/close-dagger-plan.doc.md | 1 + docs/how-to/how-to.md | 1 + .../plans/{ => completed}/adopt-dagger-ci.md | 28 +++++++++++-------- docs/how-to/plans/completed/completed.md | 15 ++++++++++ docs/how-to/plans/plans.md | 3 +- 5 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 docs/changelog.d/close-dagger-plan.doc.md rename docs/how-to/plans/{ => completed}/adopt-dagger-ci.md (94%) create mode 100644 docs/how-to/plans/completed/completed.md diff --git a/docs/changelog.d/close-dagger-plan.doc.md b/docs/changelog.d/close-dagger-plan.doc.md new file mode 100644 index 0000000..1031743 --- /dev/null +++ b/docs/changelog.d/close-dagger-plan.doc.md @@ -0,0 +1 @@ +Close Dagger CI plan (Phases 1–3 complete) and move to completed plans archive. diff --git a/docs/how-to/how-to.md b/docs/how-to/how-to.md index 928b4e9..1b141c9 100644 --- a/docs/how-to/how-to.md +++ b/docs/how-to/how-to.md @@ -53,6 +53,7 @@ Migration and transition plans for upcoming infrastructure changes. | Plan | Description | |------|-------------| | [[plans]] | Index of all plans | +| [[completed]] | Completed plans archive | | [[migrate-forgejo-from-brew]] | Transition Forgejo from Homebrew to source-built binary | | [[add-unifi-pulumi-stack]] | Add Pulumi IaC for UniFi Express 7 | | [[adopt-dagger-ci]] | Adopt Dagger as CI/CD build engine | diff --git a/docs/how-to/plans/adopt-dagger-ci.md b/docs/how-to/plans/completed/adopt-dagger-ci.md similarity index 94% rename from docs/how-to/plans/adopt-dagger-ci.md rename to docs/how-to/plans/completed/adopt-dagger-ci.md index ef4db55..ae4f5f6 100644 --- a/docs/how-to/plans/adopt-dagger-ci.md +++ b/docs/how-to/plans/completed/adopt-dagger-ci.md @@ -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 diff --git a/docs/how-to/plans/completed/completed.md b/docs/how-to/plans/completed/completed.md new file mode 100644 index 0000000..3dd7856 --- /dev/null +++ b/docs/how-to/plans/completed/completed.md @@ -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) | diff --git a/docs/how-to/plans/plans.md b/docs/how-to/plans/plans.md index 5de30be..39dec64 100644 --- a/docs/how-to/plans/plans.md +++ b/docs/how-to/plans/plans.md @@ -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 | -- 2.50.1 (Apple Git-155)