Repository navigation
fix(ci): run every present language on schedule/dispatch in reusable-ci - #369
Merged
Merged
Conversation
detect-changes compared the commit with itself on schedule and
workflow_dispatch events (no github.event.before), so every language job
skipped and nightly callers never ran their suites. Add a force-all input
('auto' default forces on schedule/workflow_dispatch; 'true'/'false'
override). A forced run inventories tracked files against the same
filters, so only languages the repo contains run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017MtQ5LP2n3t3bs7AhptkKJ
A forced run marked rust and frontend changed on any matching file, so fixture files (testdata/rust/Cargo.toml, a root package.json with no web/) started rust-ci and frontend-ci, which then failed. Require a root Cargo.toml for rust and <frontend dir>/package.json for frontend, using the same gha-get-frontend-config resolution frontend-ci uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017MtQ5LP2n3t3bs7AhptkKJ
python-ci runs `pip install -e .` whenever pyproject.toml exists and pytest at the root. audiobook-organizer's pyproject.toml holds only black config, so a forced run failed python-ci at the install. Require a pyproject.toml with [project]/[build-system], setup.py, setup.cfg or requirements.txt before forcing python-ci. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017MtQ5LP2n3t3bs7AhptkKJ
This was referenced Oct 5, 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
detect-changesusedbase: github.event.pull_request.base.sha || github.event.before || github.sha. Onscheduleandworkflow_dispatchthere is nobefore, so the run compared the head commit with itself. Every category came back unchanged and every language job skipped. audiobook-organizer'snightly.ymlskippedGo CIon 5 of 5 scheduled runs checked, so its full non-short race suite never ran nightly.Fix
force-all(string, default'auto').'auto'forces onschedule/workflow_dispatchand diffs otherwise.'true'always forces,'false'always diffs, and any other value fails the job.git ls-fileswith:(glob)pathspecs) against the same filters, so only categories the repo contains reporttrue.rust_filesneeds a rootCargo.toml.frontend_filesneeds<gha-get-frontend-config dir>/package.json.python_filesneeds a root package:pyproject.tomlwith[project]/[build-system],setup.py,setup.cfg, orrequirements.txt.CHANGE_FILTERS, and both paths read them. The inventory parser fails on any line it cannot parse.detect-changesexposes aforce-alloutput.workflow-lint/workflow-scriptsdrop their ownworkflow_dispatchbypass, since the forced inventory covers that case.Verified on real runners (forced via workflow_dispatch on this branch)
testdata/rust/Cargo.tomland a rootpackage.jsonwith noweb/. Workflow Scripts fails on pre-existingruffdebt in.github/scripts(411 findings). That job already ran on every manual dispatch through the removed bypass. The fix is a separate PR.force-all: 'true'): Go CI, Frontend CI (with E2E), Workflow Lint and Workflow Scripts run. Python CI is now gated off, because itspyproject.tomlis black config only and failed atpip install -e ..Caller impact
ci.yml(weekly schedule + dispatch)ci.yml(dispatch)@mainCargo.toml+src/main.rs)nightly.ymlforce-all: 'true'Known gap, not changed here: diff mode has the same fixture false positive. A PR touching only
testdata/rust/*.rswould still start rust-ci.🤖 Generated with Claude Code
https://claude.ai/code/session_017MtQ5LP2n3t3bs7AhptkKJ