Skip to content

fix(notify-irm): remove ${{ }} templates from description blocks#53

Merged
DevSecNinja merged 1 commit intomainfrom
fix/notify-irm-description-template
May 1, 2026
Merged

fix(notify-irm): remove ${{ }} templates from description blocks#53
DevSecNinja merged 1 commit intomainfrom
fix/notify-irm-description-template

Conversation

@DevSecNinja
Copy link
Copy Markdown
Owner

Summary

Every consumer of notify-irm is failing at action-load time with:

DevSecNinja/.github/.../actions/notify-irm/action.yml (Line: 3, Col: 14):
Unrecognized function: 'always'.
Located at position 1 within expression: always() && github.ref == 'refs/heads/main' && github.event_name == 'push'

Root cause

GitHub Actions runs the template engine over action.yml in full — including the description: block. The usage example I embedded in the description contained ${{ always() && github.ref == ... }}, and always() is only valid in workflow if: contexts. The engine rejected the expression and refused to load the manifest, so every workflow that did uses: DevSecNinja/.github/.github/actions/notify-irm@<sha> failed.

Fix

  • Strip all ${{ }} expressions out of description: blocks in action.yml.
  • Move the usage example into a sibling README.md (where it can use ${{ }} freely because it isn't templated).

Verification

  • runs.steps[0] still uses ${{ inputs.* }} and ${{ github.* }} — those are valid in composite steps and were never the problem.
  • After this lands, downstream consumers (truenas-apps#306 and dotfiles#255) will load the action successfully and their existing SHA pins (a877d352…) only need to be bumped to the merge SHA of this PR.

GitHub Actions evaluates ${{ }} expressions inside action.yml even
within description blocks, so the documentation example containing
always() (only valid in workflow if: contexts) caused every consumer
workflow to fail with:

  Unrecognized function: 'always'.
  Located at position 1 within expression:
  always() && github.ref == 'refs/heads/main' && ...

Move the example into a sibling README.md and keep the description text
template-free.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant