Skip to content

fix(ci): restore version-tag trigger glob in release workflows - #46

Merged
elkaix merged 1 commit into
mainfrom
fix/release-tag-trigger-glob
Jun 1, 2026
Merged

fix(ci): restore version-tag trigger glob in release workflows#46
elkaix merged 1 commit into
mainfrom
fix/release-tag-trigger-glob

Conversation

@elkaix

@elkaix elkaix commented Jun 1, 2026

Copy link
Copy Markdown
Member

Root cause

fb7fdbf ci(actions): update workflows for Node 24 rewrote the v* tag trigger:

-      - "v[0-9]+.[0-9]+.[0-9]+"
+      - "v+([0-9]).+([0-9]).+([0-9])"

GitHub Actions ref filters are not ksh extglob — ( and ) are literal characters, so v+([0-9]).+([0-9]).+([0-9]) only matches a tag containing literal parentheses. No real version tag matches, so the trigger silently fires nothing. v0.28.0 was the first tag pushed after this change and triggered zero workflows (verified: pushed both lightweight and annotated tags, neither produced a run; GitHub status all-operational).

Blast radius

The broken pattern was applied to all 7 v*-tag-triggered workflows: release-pythinker-cli (PyPI + GitHub release), promote-release, linux-installer, windows-installer, homebrew-tap, scoop-bucket, docker. The whole release pipeline was dead for tagged releases. (release-pythinker-{core,host,sdk} use pythinker-*-* globs and were unaffected.)

Fix

Restore the proven "v[0-9]+.[0-9]+.[0-9]+" pattern — the exact one that shipped v0.24.0–v0.27.0 — across all 7 files. Five of them regressed from this pattern in fb7fdbf; scoop-bucket and docker are newer (added after v0.27.0) and were born with the broken pattern.

After this merges, v0.28.0 is re-tagged onto the fixed commit (GitHub evaluates the tag trigger from the workflow file at the tagged commit, so the tag must point past this fix).

[skip changelog] — CI trigger fix, no user-facing product change.

Summary by CodeRabbit

  • Chores
    • Standardized version tag detection across all build and release workflows (Docker, Homebrew, Scoop, PyPI, Windows/Linux installers) to support semantic version tags (v1.2.3).

fb7fdbf changed the v* tag trigger from "v[0-9]+.[0-9]+.[0-9]+" to "v+([0-9]).+([0-9]).+([0-9])". GitHub Actions ref filters are not ksh extglob — `(` and `)` are literal, so the new pattern matches no real version tag and silently fires nothing. v0.28.0 was the first tag pushed after the change and triggered zero release/installer/promote/distribution workflows.

Restore the proven "v[0-9]+.[0-9]+.[0-9]+" pattern (which shipped v0.24.0–v0.27.0) across all 7 affected workflows: release-pythinker-cli, promote-release, linux-installer, windows-installer, homebrew-tap, scoop-bucket, docker. The pythinker-core/host/sdk release workflows use pythinker-*-* globs and were unaffected.

[skip changelog] — CI trigger fix, no user-facing product change.
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Seven GitHub Actions workflows are updated to standardize semantic version tag-matching. Each workflow's push.tags trigger regex is changed to the pattern v[0-9]+.[0-9]+.[0-9]+, replacing previous inconsistent patterns and enabling support for multi-digit version numbers.

Changes

Semantic Version Tag Matching

Layer / File(s) Summary
Tag matching pattern updates
.github/workflows/docker.yml, .github/workflows/homebrew-tap.yml, .github/workflows/linux-installer.yml, .github/workflows/promote-release.yml, .github/workflows/release-pythinker-cli.yml, .github/workflows/scoop-bucket.yml, .github/workflows/windows-installer.yml
Each workflow's tag-matching regex is updated from permissive or single-digit-only patterns to the standardized v[0-9]+.[0-9]+.[0-9]+ format, ensuring consistent semantic version tag recognition across all release pipelines.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested labels

bug

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title follows conventional commits format with 'fix(ci)' type and scope, and clearly describes the specific change: restoring version-tag trigger patterns in release workflows.
Description check ✅ Passed Description includes root cause analysis, blast radius assessment, and fix details with verification steps, but missing linked issue and some checklist items.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/release-tag-trigger-glob

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release-pythinker-cli.yml:
- Around line 3-6: Add a top-level concurrency block to the tag-triggered
workflow to prevent overlapping release runs: in the
.github/workflows/release-pythinker-cli.yml workflow (the one with on: push:
tags: - "v[0-9]+.[0-9]+.[0-9]+"), add a concurrency key with a stable group name
(e.g., using github.ref or a release identifier) and set cancel-in-progress:
true so that concurrent tag pushes won’t run overlapping release jobs and avoid
race conditions during publishing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4cd8a60e-a372-4e13-a97e-c2809d63cf77

📥 Commits

Reviewing files that changed from the base of the PR and between 1ba3620 and cb68d6c.

📒 Files selected for processing (7)
  • .github/workflows/docker.yml
  • .github/workflows/homebrew-tap.yml
  • .github/workflows/linux-installer.yml
  • .github/workflows/promote-release.yml
  • .github/workflows/release-pythinker-cli.yml
  • .github/workflows/scoop-bucket.yml
  • .github/workflows/windows-installer.yml

Comment thread .github/workflows/release-pythinker-cli.yml
@elkaix
elkaix merged commit 1bea2d1 into main Jun 1, 2026
27 checks passed
@elkaix
elkaix deleted the fix/release-tag-trigger-glob branch June 1, 2026 13:56
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