CI Deprecation Response

Date
ImpactMedium

Decisions

D1: Bulk Version Upgrade of 11 Actions (Node.js 24 Response)

  • Context: GitHub Actions runner switching to Node.js 24 as default from 2026-06-02, with complete removal of Node 20 scheduled for 2026-09-16. CI 15 jobs depend on Node 20-based actions.
  • Choice: Bulk bump of 11 actions to latest major versions supporting Node 24. Processed as a single commit for full CI validation.
  • Alternatives: Gradual incremental upgrade of individual actions → rejected (change scope is only uses: tags, making bulk processing more efficient)
  • Code Paths: .github/workflows/ci.yml

D2: docker/build-push-action v5 → v7 (2 Major Jump)

  • Context: v6 is Node 20 based, v7 switches to Node 24 + ESM. Upgrading directly to v7 without going through v6.
  • Choice: Go directly to v7. Confirmed all existing parameters (context, platforms, push, tags, cache-from, cache-to) are compatible.
  • Alternatives: Stepwise v5 → v6 → v7 transition → rejected (v6 also scheduled for deprecation soon)
  • Code Paths: .github/workflows/ci.yml (build-services, build-frontend, build-blog jobs)

Patterns

P1: GitHub Actions Version Upgrade Bulk Processing

  • Where: .github/workflows/ci.yml
  • When to Reuse: Apply the same pattern for the next major deprecation cycle (Node 24 → Node 26, etc.). Extract uses: lines with grep → research latest versions → bulk replacement with replace_all → full CI validation

Metrics

  • Commits: 1, Files changed: 1 (42 uses lines changed, +48/-48)