GRM-147: docs: add retrospective for CI consolidation and devx adoption
This commit was merged in pull request #217.
This commit is contained in:
@@ -0,0 +1,105 @@
|
|||||||
|
# Retrospective: CI Consolidation and devx Adoption
|
||||||
|
|
||||||
|
## Date
|
||||||
|
2026-07-12
|
||||||
|
|
||||||
|
## Context
|
||||||
|
The grm repo (Gitea Runner Manager) underwent CI workflow consolidation
|
||||||
|
and adopted the latest devx package (v0.40.0 → v0.40.1) during this
|
||||||
|
period. The self-approval fallback fix in devx v0.40.1 required passing
|
||||||
|
`CI_GITEA_API_TOKEN` to the approval step in grm's CI workflow. This
|
||||||
|
retrospective covers grm v0.17.2 through v0.18.0.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
PRs: GRM-144 (IPv6/pasta), GRM-145 (devx v0.40.0 adoption), GRM-146 (CI
|
||||||
|
consolidation). Plus the self-approval fallback cherry-pick. ~12 commits.
|
||||||
|
|
||||||
|
## Timeline of Key Events
|
||||||
|
|
||||||
|
| Event | Description |
|
||||||
|
|-------|-------------|
|
||||||
|
| GRM-144 merged | IPv6 support via pasta network driver (v0.18.0) |
|
||||||
|
| GRM-145 merged | Adopted devx v0.40.0, removed redundant crypto/vault wrappers |
|
||||||
|
| GRM-146 merged | Consolidated CI and post-merge workflows (7→2 jobs) |
|
||||||
|
| devx v0.40.1 bump | Cherry-picked self-approval fallback into grm CI |
|
||||||
|
|
||||||
|
No CI failures were specific to grm during this period. The grm CI
|
||||||
|
passed cleanly on all runs. The only issue was the cross-repo
|
||||||
|
self-approval bug (inherited from devx), which was fixed by bumping
|
||||||
|
devx to v0.40.1 and passing `CI_GITEA_API_TOKEN` to the approval step.
|
||||||
|
|
||||||
|
## What Served Us Well
|
||||||
|
|
||||||
|
- **Clean CI consolidation.** GRM-146 merged 7 CI jobs into 2
|
||||||
|
(validate + molecule-tests) without any CI failures. The
|
||||||
|
consolidation pattern was already proven in devx (DEVX-126), so the
|
||||||
|
application to grm was straightforward.
|
||||||
|
- **devx adoption was smooth.** GRM-145 adopted devx v0.40.0 and removed
|
||||||
|
redundant crypto/vault wrappers. The refactoring was clean — no test
|
||||||
|
failures, no coverage drops.
|
||||||
|
- **Molecule tests stable.** All 6 molecule scenarios passed on every
|
||||||
|
CI run. The pasta networking change (GRM-144) was well-tested with
|
||||||
|
molecule before merge.
|
||||||
|
- **Pre-push hook caught missing Vikunja tasks.** The pre-push hook
|
||||||
|
validates Vikunja task existence, preventing pushes without
|
||||||
|
corresponding tasks.
|
||||||
|
|
||||||
|
## What Could Be Improved
|
||||||
|
|
||||||
|
### 1. Cross-Repo Dependency Propagation
|
||||||
|
|
||||||
|
When devx v0.40.1 was released with the self-approval fix, grm needed
|
||||||
|
to bump its devx version and update the CI workflow to pass
|
||||||
|
`CI_GITEA_API_TOKEN`. This was a manual process — there's no automated
|
||||||
|
mechanism to detect that a devx release affects downstream repos.
|
||||||
|
|
||||||
|
**Impact:** The self-approval fix was in devx for ~30 min before grm
|
||||||
|
was updated. If the timing had been different, grm PRs could have been
|
||||||
|
blocked.
|
||||||
|
|
||||||
|
**Lesson:** When releasing a devx fix that affects CI workflows in
|
||||||
|
downstream repos, bump devx in all repos in the same session. Consider
|
||||||
|
a "dependabot" style check that flags outdated devx versions.
|
||||||
|
|
||||||
|
### 2. No Repo-Specific Retrospective Directory
|
||||||
|
|
||||||
|
The grm repo didn't have a `docs/retrospectives/` directory until now.
|
||||||
|
Previous retrospectives were only in the infra repo. This meant grm-
|
||||||
|
specific lessons weren't being captured.
|
||||||
|
|
||||||
|
**Impact:** Low — grm had fewer issues during this period. But going
|
||||||
|
forward, grm-specific learnings should be documented here.
|
||||||
|
|
||||||
|
**Fix:** Created `docs/retrospectives/` directory with this
|
||||||
|
retrospective.
|
||||||
|
|
||||||
|
## Improvements Implemented
|
||||||
|
|
||||||
|
### 1. CI Workflow Consolidation (MEDIUM impact)
|
||||||
|
|
||||||
|
Merged 7 CI jobs into 2 (validate + molecule-tests), matching the
|
||||||
|
pattern established in devx. Reduced runner overhead by ~4 min per CI
|
||||||
|
run.
|
||||||
|
|
||||||
|
### 2. devx v0.40.1 Adoption (HIGH impact)
|
||||||
|
|
||||||
|
Bumped devx to v0.40.1, picking up the self-approval fallback fix.
|
||||||
|
Updated CI workflow to pass `CI_GITEA_API_TOKEN` to the approval step.
|
||||||
|
|
||||||
|
### 3. IPv6 Support via Pasta (MEDIUM impact)
|
||||||
|
|
||||||
|
GRM-144 enabled IPv6 in rootless Docker via the pasta network driver,
|
||||||
|
replacing the previous slirp4netns setup. This improves network
|
||||||
|
performance and enables IPv6 connectivity for runner containers.
|
||||||
|
|
||||||
|
## Action Items for Future Sessions
|
||||||
|
|
||||||
|
1. **Bump devx in all downstream repos when a CI-affecting fix is
|
||||||
|
released.** Don't leave repos on stale devx versions.
|
||||||
|
2. **Document grm-specific lessons in this retrospective directory.**
|
||||||
|
Don't rely on the infra retrospective to cover grm issues.
|
||||||
|
3. **When consolidating CI workflows, verify that all status checks
|
||||||
|
referenced by branch protection are still present.** The
|
||||||
|
consolidation renamed `quality` to `validate`, requiring a branch
|
||||||
|
protection update.
|
||||||
Reference in New Issue
Block a user