feat(ci): run this repository's own workflows - #71
Merged
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
Every workflow here was `workflow_call`-only, so nothing verified this repository itself: the sole check on a PR came from a `pull_request:` trigger grafted onto the `ai-claude-review.yml` reusable. Mirror the layout of sbaerlocher/.github instead — dedicated self-CI workflows that invoke the local reusables through a `./` path, so the workflows consumers depend on are exercised before they ship. self-merge.yml closes a rollout gap rather than adding convenience. Tagging was manual, the newest tag was 2026-06-18, and all seven consumer repositories pin exactly that tag — so anything merged after that date sat on main unreachable. The tag now follows the day's latest merge, forward-only and serialised on a single concurrency group. Moving the trigger out of ai-claude-review.yml does not affect the claude-code-action workflow-validation guard. That guard compares every workflow file participating in a run against the default branch, not just the triggering one, so a PR touching the reusable still has its review skipped. Reporting that skip as a skip rather than a green pass is a separate change. yamllint stays off in the lint job for now — `ai-claude-review.yml` holds a 515-char `--allowedTools` line that exceeds the 500-char limit in templates/.yamllint.yml. The list is comma-separated and cannot be folded, since YAML block folding inserts a space after each newline and would corrupt the tool names. Signed-off-by: Simon Bärlocher <s.baerlocher@sbaerlocher.ch>
sbaerlocher
force-pushed
the
feat/self-ci
branch
from
August 7, 2026 17:52
316be94 to
b77db26
Compare
sbaerlocher
added a commit
that referenced
this pull request
Aug 7, 2026
The `release-go.yml` and `security-code.yml` sections were the only ones without a **Jobs:** list, which review feedback flagged as inconsistent with the four sections added alongside them. Job names are taken from the workflow files rather than inferred: `goreleaser`, and `analyze` as a matrix over the `languages` input. The rebase onto main brought in the three `self-*` workflows from #71, which this README did not cover. They are deliberately absent from the reusable sections above — they carry no `workflow_call` trigger and cannot be called from another repository — so they get a short section of their own stating that, rather than being listed as if consumers could use them. Signed-off-by: Simon Bärlocher <s.baerlocher@sbaerlocher.ch>
sbaerlocher
added a commit
that referenced
this pull request
Aug 7, 2026
…ry (#70) * docs(workflows): document all reusable workflows and drop phantom entry The README documented `ci-go-action.yml`, which does not exist — copying that block yields a workflow resolution error — while six actual reusables were missing entirely. All sixteen workflows are now documented from their `workflow_call` inputs. Signed-off-by: Simon Bärlocher <s.baerlocher@sbaerlocher.ch> * docs(workflows): add Jobs lists and document the self-CI workflows The `release-go.yml` and `security-code.yml` sections were the only ones without a **Jobs:** list, which review feedback flagged as inconsistent with the four sections added alongside them. Job names are taken from the workflow files rather than inferred: `goreleaser`, and `analyze` as a matrix over the `languages` input. The rebase onto main brought in the three `self-*` workflows from #71, which this README did not cover. They are deliberately absent from the reusable sections above — they carry no `workflow_call` trigger and cannot be called from another repository — so they get a short section of their own stating that, rather than being listed as if consumers could use them. Signed-off-by: Simon Bärlocher <s.baerlocher@sbaerlocher.ch> --------- Signed-off-by: Simon Bärlocher <s.baerlocher@sbaerlocher.ch>
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.
Summary
arillso/.githubhad no CI of its own. All 16 workflows wereworkflow_call-only reusables for consumers; the single check that ran on a PR here came from apull_request:trigger grafted ontoai-claude-review.yml. This adds the three self-CI workflowssbaerlocher/.githubuses, each calling the local reusables via a./path so the workflows consumers depend on get exercised before they ship.self-merge.ymlcloses a rollout gap. Tagging was manual and the newest tag was2026-06-18— exactly what all seven consumer repositories pin. Everything merged since then, fix: stop expanding caller inputs into run bodies #66 and fix(ci): read review instructions from the base ref #69 included, sat onmainunreachable by any tag. The tag now follows the day's latest merge, forward-only, serialised onconcurrency: date-tag.ai-claude-review.ymlloses itspull_request:trigger and becomesworkflow_call-only like every other reusable, invoked fromself-pull-request.yml.Workflow-validation skip is not fixed here
An earlier draft of this description claimed moving the trigger would stop
claude-code-actionfrom skipping itself on PRs that touchai-claude-review.yml. That is wrong, and the run on this PR disproves it —Code Review / claude-reviewreportspasswhile the log says:The guard validates every workflow file participating in the run against the default branch, not only the triggering one. This PR modifies the called reusable itself, so it fails validation regardless of where the trigger lives. No review has run on this PR, and none ran on #69 either.
Two separate follow-ups, both out of scope here:
f618c75fromsbaerlocher/.github("report a workflow-validation skip as a skip") so a skipped review stops reporting a greenpass. Right now a silent skip is indistinguishable from a clean review.ai-claude-review.ymlneeds human review by construction — the bot cannot review changes to its own workflow before they land onmain.Notes
enable_yamllint: falsein the lint job is deliberate.ai-claude-review.yml:132carries a 515-char--allowedToolsline over the 500-char limit intemplates/.yamllint.yml. The list is comma-separated and cannot be folded — YAML block folding inserts a space after each newline, producing entries like" Bash(gh pr view:*)". Fixing it means either restructuring that line or revisiting the limit in a template that consumers inherit; both belong in their own change.self-to keep them visually distinct from the reusables and away from theci-/security-/release-categories documented in AGENTS.md.Test plan
actionlint(v1.7.12, container) on all three new files plusai-claude-review.yml— exit 0, no findings.yamllint -c templates/.yamllint.yml— finding count identical tomain(8), no new findings introduced.uses: ./target resolves to an existing file (5/5).--allowedToolsline verified byte-identical tomain; the diff onai-claude-review.ymlis only the trigger removal and two comment blocks.self-pull-request.yml: five checks now run (Lint / Action Lint,Lint / Shell Check,Code Analysis / Analyze Code (actions),CodeQL,Code Review / claude-review) where previously onlyAI - Code Reviewdid.Lint / YAML Lintcorrectly reportsskippingperenable_yamllint: false.Code Review / claude-reviewreportspasswithout running a review — see the section above. Not a regression from this change; fix(ci): read review instructions from the base ref #69 behaved identically.self-merge.ymlcannot be verified pre-merge — the first push tomainafter merging should create tag2026-08-07and point it at the merge commit.