Files
grm/docs/retrospectives/2026-07-12-ci-consolidation-and-devx-adoption.md
T
emil 70240a13cf
Post-merge / detect-and-configure (push) Waiting to run
Post-merge / release-and-maintain (push) Waiting to run
GRM-147: docs: add retrospective for CI consolidation and devx adoption
2026-07-12 20:02:03 +00:00

4.2 KiB

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.