Skip to content

ci: unify test, tag and propagate in one workflow - #19

Merged
astrojuanlu merged 2 commits into
mainfrom
unify-workflows
Oct 22, 2026
Merged

astrojuanlu merged 2 commits into
mainfrom
unify-workflows

Conversation

@astrojuanlu

Copy link
Copy Markdown
Contributor

What

Replace the three separate workflows (test.yaml, tag.yaml, propagate.yaml) with a single Template CI workflow (three jobs) so the pipeline is visible as one run instead of three loosely-related ones.

pull_request          -> test
push (main)           -> test -> tag -> propagate
workflow_dispatch     -> propagate only (optional tag input)

Details

  • Tests now gate the tag (agreed): tag has needs: test, so a red main no longer tags, and propagate has needs: tag — nothing broken reaches the plugin repositories. Previously all three fired independently.
  • Job names and concurrency groups are preserved (Test template, tag serialization, propagate-template); permissions moved to job level (tag: contents write, propagate: contents read), with an empty top-level permissions: {}.
  • The propagate job keeps resolving the latest tag at runtime (instead of a hard dependency on the tag job's output), which preserves two existing behaviors: propagation after manual tag pushes (where the tag job is a no-op) and manual re-runs via workflow_dispatch with an optional tag.
  • On PRs, tag/propagate show as skipped jobs; PR checks keep the same name.

Verification

  • YAML parses; job set is exactly {test, tag, propagate}.
  • Logic reviewed against all three trigger paths. First real exercise will be the merge to main itself (test → tag → propagate).

Assisted-by: OpenRouter:z-ai/glm-5.3-flash pi

Three workflows with chained triggers (test on push, tag on push,
propagate via workflow_run of the tag workflow) made the pipeline
relationship invisible in the runs list. Merge them into a single
Template CI workflow with three jobs:

- pull_request: test only (PR checks unchanged)
- push to main: test -> tag -> propagate; tests now gate the tag, so a
  broken main no longer propagates to the plugins
- workflow_dispatch: propagate only, as before

Permissions, job names and concurrency behavior are preserved; the
propagate job keeps resolving the latest tag at runtime, which also
covers manual tag pushes and manual re-runs.
Workflow-only PRs (like this one) matched none of the pull_request
paths and got no CI at all. Include .github/** so changes to the
pipeline itself are at least linted.
@astrojuanlu
astrojuanlu merged commit f82c66b into main Oct 22, 2026
3 checks passed
@astrojuanlu
astrojuanlu deleted the unify-workflows branch October 22, 2026 19:03
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