You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: run-syntax gate does not read composite actions (.github/actions) #854
tools/check_run_syntax.py reads .github/workflows/*.yml only. The gate's workflow is triggered by .github/workflows/** and the tool itself. So the run: steps of a composite action under .github/actions/*/action.yml are not parsed by anything, and a change to an action alone does not even start the gate.
This matters from #852 on. That PR adds the first composite action here, .github/actions/openxc7-chipdb. Its three run steps are what 53 FPGA workflows now execute.
Fix
Glob .github/actions/*/action.yml (and action.yaml) next to the workflows.
When runs.using is composite, walk runs.steps. Composite steps must name a shell:, so shell_of takes it from the step, with no job or workflow defaults.
Add .github/actions/** to both paths: lists in run-syntax-gate.yml.
Add a self-test case: an action whose run step has an unbalanced quote must fail.
One item from the fix list moved: .github/actions/** in run-syntax-gate.yml's paths: is in #852 (0c5f415), not #894. On main no tracked file matches it yet, and the workflow-path gate rejects that entry (audit_workflow_paths.py rc 1 with it, rc 0 without).
Found on the way, also fixed in #852 (0c5f415): 46 workflows call openxc7-chipdb, and none of their triggers covered .github/actions/ (46 of 46 push filters, no pull_request trigger at all). An action-only change ran nothing. ax7203-led-onehot.yml now runs on a PR or a main push that touches the action.
Still open from "Not measured": tools/check_tee_pipefail.py reads workflows only. In an action, shell: bash already carries -o pipefail, so the gap is shell: sh or a custom bash {0} with | tee; no action here has one today.
Activity
gHashTag commentedon Oct 5, 2026
Fix is up as #894 (stacked on #893).
has_actions = True) is equivalent"planted in the action's last stepOne item from the fix list moved:
.github/actions/**inrun-syntax-gate.yml'spaths:is in #852 (0c5f415), not #894. On main no tracked file matches it yet, and the workflow-path gate rejects that entry (audit_workflow_paths.pyrc 1 with it, rc 0 without).Found on the way, also fixed in #852 (0c5f415): 46 workflows call
openxc7-chipdb, and none of their triggers covered.github/actions/(46 of 46 push filters, nopull_requesttrigger at all). An action-only change ran nothing.ax7203-led-onehot.ymlnow runs on a PR or a main push that touches the action.Still open from "Not measured":
tools/check_tee_pipefail.pyreads workflows only. In an action,shell: bashalready carries-o pipefail, so the gap isshell: shor a custombash {0}with| tee; no action here has one today.🤖 Generated with Claude Code
ci(tools): parse the run steps of composite actions in the run-syntax…