fix: quote the scan steps' image so an empty tag does not break every pipeline #11

Merged
morten-olsen merged 3 commits from mc/d50e173f-a8c1-46a2-889f-e1c5b7e1bcc5 into main 2026-10-07 15:45:14 +02:00
Contributor

Summary

PR #10 broke the Woodpecker config of the whole repo. Pipelines 57–60 (my branch push, PR, PR closed, main push after the merge) all ended error before any step ran, with compiler: go-yaml load error in scanner at L36.C55: mapping values are not allowed in this context.

Cause: image: code.olsen.cloud/ai/mission-control-agent:${CI_COMMIT_TAG##v} in image-agent.yaml was unquoted. On a push, CI_COMMIT_TAG is empty, so substitution leaves ...agent: with a trailing colon, which YAML reads as a mapping key. Woodpecker substitutes before parsing, and woodpecker-cli lint does not substitute, which is why lint passed.

Fix: quote the image: value of both scan steps (image-agent.yaml and, for safety, image.yaml). Two lines. (The branch also carries a no-op merge of its own earlier commit, only so it can be pushed.)

Evidence

  • Error text from woodpecker-cli pipeline show ai/mission-control 60 --output 'go-template=...Errors...'; column 55 is the colon before the substituted value.
  • woodpecker-cli lint --strict .woodpecker: valid. The real test is the pipeline run on this PR: it must start (not error), with quality running and the tag workflows skipped.

Merge danger

Config only; nothing is published on a PR. Until it is merged, no pipeline can start on main or on a tag.

Rollback

Fix forward; reverting restores the broken config.

After rollout

Pipelines on this PR and on main start; then a tag run builds both images.

## Summary PR #10 broke the Woodpecker config of the whole repo. Pipelines 57–60 (my branch push, PR, PR closed, main push after the merge) all ended `error` before any step ran, with `compiler: go-yaml load error in scanner at L36.C55: mapping values are not allowed in this context`. Cause: `image: code.olsen.cloud/ai/mission-control-agent:${CI_COMMIT_TAG##v}` in `image-agent.yaml` was unquoted. On a push, `CI_COMMIT_TAG` is empty, so substitution leaves `...agent:` with a trailing colon, which YAML reads as a mapping key. Woodpecker substitutes before parsing, and `woodpecker-cli lint` does not substitute, which is why lint passed. Fix: quote the `image:` value of both scan steps (`image-agent.yaml` and, for safety, `image.yaml`). Two lines. (The branch also carries a no-op merge of its own earlier commit, only so it can be pushed.) ## Evidence - Error text from `woodpecker-cli pipeline show ai/mission-control 60 --output 'go-template=...Errors...'`; column 55 is the colon before the substituted value. - `woodpecker-cli lint --strict .woodpecker`: valid. The real test is the pipeline run on this PR: it must start (not `error`), with `quality` running and the tag workflows skipped. ## Merge danger Config only; nothing is published on a PR. Until it is merged, no pipeline can start on main or on a tag. ## Rollback Fix forward; reverting restores the broken config. ## After rollout Pipelines on this PR and on main start; then a tag run builds both images.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
On a push the unquoted ${CI_COMMIT_TAG##v} expands to nothing and leaves 'agent:' as a mapping
key, so Woodpecker rejected the whole repo's config (pipelines 57-60 errored).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge remote-tracking branch 'origin/mc/d50e173f-a8c1-46a2-889f-e1c5b7e1bcc5' into mc/d50e173f-a8c1-46a2-889f-e1c5b7e1bcc5
Some checks failed
ci/woodpecker/push/quality Pipeline failed
ci/woodpecker/push/docs unknown status
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
6436e832cc
morten-olsen deleted branch mc/d50e173f-a8c1-46a2-889f-e1c5b7e1bcc5 2026-10-07 15:45:14 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai/mission-control!11
No description provided.