ci(release): remove empty ${{ }} expression from bash comment#310
Merged
mateeullahmalik merged 1 commit intoJul 6, 2026
Merged
Conversation
Follow-up to #307. The comment added in that PR contained the literal text '${{ }} interpolation' inside a run: bash block. GitHub Actions validates ${{ ... }} expressions everywhere in the workflow file at dispatch time — including inside bash comments in run: block scalars. An empty ${{ }} expression is a validation error, so every push to master (and every tag push) since #307 landed hits a workflow startup failure: run accepted, 0 jobs scheduled, run_started_at == updated_at, conclusion=failure. Verified failure signature on ea1a9c4 (post-#307 master): run 28756586178 / 28756630521 — status=completed, conclusion=failure, jobs=[], run_started_at == updated_at. Also observed on tag push of v2.6.0-testnet retagged onto ea1a9c4: the release job never scheduled, so assets remained empty. Fix: rephrase the comment to describe the prior pattern in English rather than embedding the literal syntax. No functional change to any step logic. Signed-off-by: Matee ullah Malik <mateeullahmalik@hotmail.com>
j-rafique
approved these changes
Jul 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Every workflow run of
Build and Release Workflowon master since #307 landed (commitea1a9c4) has been dying at dispatch with the workflow startup-failure fingerprint documented in that same PR —status: completed,conclusion: failure,jobs: [],run_started_at == updated_at(sub-second), workflow name reported as the raw file path rather than thename:field.Verified on:
28756586178— push on master @ ea1a9c428756630521— push on master @ ea1a9c4v2.6.0-testnet(retagged onto ea1a9c4 today) never scheduled its release job either — same root cause.Root cause
The comment PR #307 added inside the
Get tag informationstep'srun:block contains the literal string:(showing here with a ZWSP to avoid re-triggering the bug in the PR body.)
GitHub Actions validates every
${{ … }}expression in the workflow file at dispatch time — including expressions inside bash comments inrun:block scalars. It does not know or care that bash would treat the line as a comment; the GHA templating engine parses the whole YAML file first. An empty${{ }}expression is a syntactic error, so the workflow is rejected before any job is scheduled.This is the same class of trap as #303 → #307, just at the comment layer rather than the bash-execution layer.
Fix
Rephrase the comment to describe the prior pattern in English instead of embedding the literal
${{ … }}syntax. No functional change to any step logic.Verification
Pre-merge on the branch commit
1a36fc8:28756743275—Build and Release Workflow(correctname:, not the raw file path), `build` job dispatched (`in_progress`), `release` job `skipped` because branch push doesn't match `refs/tags/v*`. Startup-failure fingerprint is gone.Next step (not part of this PR)
Once merged, retag `v2.6.0-testnet` onto post-merge master. The workflow's `Check if release already exists` step will hit the pre-existing draft release object and take the idempotent "Upload assets to existing release (preserve manual notes)" path, finally attaching the tarball + binary that the fleet's sn-manager needs.
Risk / rollback
Comment-only diff. Rollback = revert. No behavioural surface.