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