blumeops/docs/how-to/forgejo-runner/validate-workflows-against-v12.md
Erich Blume 0f6a1898f0 Prepare forgejo-runner v12 upgrade (leaf nodes) (#250)
## Summary
- Review runner config against v12.7.0 defaults — added `shutdown_timeout: 3h`, no breaking changes found
- Add `validate_workflows` Dagger function using `forgejo-runner validate --directory .` inside upstream container
- All 6 workflows pass v12.7.0 schema validation
- Wire `mise run validate-workflows` task and pre-commit hook on `.forgejo/workflows/` changes
- Mark both leaf Mikado cards (`review-runner-config-v12`, `validate-workflows-against-v12`) complete

## Mikado State
After merge, `upgrade-k8s-runner` goal card has no unmet dependencies — ready to execute the actual image bump in a follow-up PR.

## Test Plan
- [x] `dagger call validate-workflows --src=.` passes (all 6 workflows OK)
- [x] Pre-commit hooks pass
- [ ] Reviewer: confirm `shutdown_timeout: 3h` addition to ConfigMap looks reasonable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/250
2026-02-22 17:38:32 -08:00

1.1 KiB

title modified tags
Validate Workflows Against v12 2026-02-22
how-to
forgejo-runner
ci

Validate Workflows Against v12

Run forgejo-runner validate (available from v9.0+) against all workflow files to catch schema issues before upgrading the k8s runner daemon.

Result

All 6 workflows pass v12.7.0 schema validation with no changes needed:

  • branch-cleanup.yaml — OK
  • build-blumeops.yaml — OK
  • build-container-nix.yaml — OK
  • build-container.yaml — OK
  • cv-deploy.yaml — OK
  • deploy-fly.yaml — OK

Deliverables

  1. validate_workflows function added to .dagger/src/blumeops_ci/main.py
    • Uses forgejo-runner validate --directory . inside the upstream runner container
    • runner_version parameter (default 12.7.0) pins to deployed version
  2. mise run validate-workflows task wired to dagger call validate-workflows
  3. Pre-commit hook triggers on .forgejo/workflows/ changes

Usage

mise run validate-workflows
# or directly:
dagger call validate-workflows --src=.