ci(release): fix tag pattern — Forgejo treats + as special, not literal #5

Merged
jmz merged 1 commit from maximus/fix/release-tag-pattern into main 2026-05-06 23:48:57 +00:00
Owner

Empirical: pushing tags `v0.14.0+mirus.1` and `v0.14.0+mirus.2` (after #4 landed the workflow on main) fired zero workflow runs despite the trigger being configured. Forgejo runner journal confirmed no event was dispatched.

Root cause: Forgejo's filter-pattern dialect treats `+` as a regex-style "one or more" quantifier, not a literal. So `'v*+mirus.*'` silently failed to match `v0.14.0+mirus.1`.

Fix: `'vmirus'` (substring) + keep the in-job ancestor check on `release/mirus` to scope correctly. We're not expecting any non-Mirus tag matching `vmirus` ever, so the looseness is fine.

Also adds `workflow_dispatch` so we can manually re-trigger the workflow from the UI for future debugging without needing a fresh tag.

After merge, push another fresh tag (`v0.14.0+mirus.3` since 1+2 are dead) to trigger and verify.

Empirical: pushing tags \`v0.14.0+mirus.1\` and \`v0.14.0+mirus.2\` (after #4 landed the workflow on main) fired **zero** workflow runs despite the trigger being configured. Forgejo runner journal confirmed no event was dispatched. Root cause: Forgejo's filter-pattern dialect treats \`+\` as a regex-style \"one or more\" quantifier, not a literal. So \`'v*+mirus.*'\` silently failed to match \`v0.14.0+mirus.1\`. Fix: \`'v*mirus*'\` (substring) + keep the in-job ancestor check on \`release/mirus\` to scope correctly. We're not expecting any non-Mirus tag matching \`v*mirus*\` ever, so the looseness is fine. Also adds \`workflow_dispatch\` so we can manually re-trigger the workflow from the UI for future debugging without needing a fresh tag. After merge, push another fresh tag (\`v0.14.0+mirus.3\` since 1+2 are dead) to trigger and verify.
ci(release): fix tag pattern — Forgejo treats + as special, not literal
All checks were successful
check / check (pull_request) Successful in 34s
check / check (push) Successful in 42s
2e88547429
Empirical: tag v0.14.0+mirus.1 (and v0.14.0+mirus.2) pushed earlier
fired zero workflow runs despite the workflow living on the default
branch with its trigger configured. Forgejo runner journal confirmed
no event was dispatched.

Root cause: Forgejo's filter-pattern dialect (shared with Gitea
Actions) treats certain characters as special — '+' acts as
'one or more' regex-style — even when the pattern is single-quoted in
YAML. So 'v*+mirus.*' silently failed to match 'v0.14.0+mirus.1'.

Fix: 'v*mirus*' (substring match) + the in-job 'verify tag is on
release/mirus' check. The substring is loose, but the ancestor check
keeps releases scoped to the right branch — and we're not expecting
non-mirus 'v*mirus*' tags ever.

Also adds workflow_dispatch so the workflow can be manually triggered
from the UI for debugging without needing a fresh tag.
jmz merged commit 2e88547429 into main 2026-05-06 23:48:57 +00: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
public/tea!5
No description provided.