Skip to content

fix(workflows): remove ${{ }} from input description (load failure)#12

Merged
asachs01 merged 1 commit into
mainfrom
fix/escape-needs-in-description
May 13, 2026
Merged

fix(workflows): remove ${{ }} from input description (load failure)#12
asachs01 merged 1 commit into
mainfrom
fix/escape-needs-in-description

Conversation

@asachs01
Copy link
Copy Markdown
Member

The bug

Previous PR (#11) put a literal usage example \${{ needs.docker.outputs.digest }} inside the digest: input description. GitHub Actions evaluates \${{ }} expressions in every string field of a workflow file — descriptions included — at workflow load time, before any job runs. needs isn't defined in that context, so GitHub rejects the workflow:

Invalid workflow file: error parsing called workflow
(Line: 39, Col: 22): Unrecognized named-value: 'needs'.

Impact

Every *-mcp release pipeline pinned to commit c2d6fc8 (8 repos) failed validation with 0 jobs run on the first post-rollout release. Confirmed across autotask, halopsa, datto-rmm, itglue, huntress, liongard, domotz, cipp.

Fix

Rephrase the description in plain prose that doesn't include a literal expression. After merge, fleet release.yml files get re-pinned to the new SHA — mechanical sweep tracked in follow-up PRs.

Test plan

  • python3 -c "import yaml; yaml.safe_load(open(...))" — parses
  • No \${{ remaining inside any description: field
  • Re-pin one fleet repo (autotask-mcp) to verify the deploy job actually runs end-to-end before sweeping the other 7

…fails)

The previous commit's `digest:` input description included
\`\${{ needs.docker.outputs.digest }}\` as a literal usage example. GitHub
Actions evaluates \`\${{ }}\` expressions in EVERY string field of a
workflow file — including input descriptions — at workflow LOAD time,
before any jobs run. At load time, \`needs\` is not a defined context,
so GitHub rejects the workflow with:

  Invalid workflow file: error parsing called workflow
  (Line: 39, Col: 22): Unrecognized named-value: 'needs'.

Effect: every \`*-mcp\` release pipeline that pinned to c2d6fc8 had its
deploy job fail validation with 0 jobs run. Confirmed across all 8
fleet repos within ~15 minutes of the rollout.

Fix: rephrase the description in plain prose that doesn't include the
literal expression. The intent — pass the docker job's \`outputs.digest\` —
is now described in words, with the underlying \`steps.<id>.outputs.digest\`
also called out for completeness.

After this merge, every caller will need to bump its pinned SHA to the
new commit. That's mechanical and tracked in follow-up PRs across the
fleet.
@asachs01 asachs01 merged commit d6ace52 into main May 13, 2026
1 check passed
@asachs01 asachs01 deleted the fix/escape-needs-in-description branch May 13, 2026 19:50
@github-project-automation github-project-automation Bot moved this from Todo to Done in MSP Claude Plugins May 13, 2026
asachs01 added a commit to wyre-technology/cipp-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/domotz-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/halopsa-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/autotask-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/itglue-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/liongard-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/datto-rmm-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
asachs01 added a commit to wyre-technology/huntress-mcp that referenced this pull request May 13, 2026
Previous pin c2d6fc8 had a workflow-load failure (${{ }} expression
in input description). New pin is the fixed version (wyre-technology/.github#12).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant