ci(tooling): add PR-time validation and release checks#334
Open
hdamker wants to merge 2 commits into
Open
Conversation
Add a Tooling CI workflow that runs on every pull request with changed-path detection, core actionlint, validation npm install checks, JavaScript syntax checks, and path-gated validation and release automation pytest jobs. Keep ShellCheck and pyflakes out of the blocking baseline for the first rollout, and narrowly ignore the current create-github-app-token v3 client-id metadata mismatch until actionlint metadata catches up. This catches workflow syntax, lockfile install, JavaScript syntax, and Python test failures before merge while leaving validation-settings CI and the post-merge regression canaries separate.
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.
What type of PR is this?
repository management
What this PR does / why we need it:
Adds a Tooling CI workflow that runs on every pull request and keeps the heavier checks path-gated. The workflow runs core actionlint semantics on tooling workflow files, verifies validation npm installs when package metadata changes, checks custom Spectral JavaScript functions with
node --check, and runs the validation or release automation pytest suites for the touched area.The path-gating logic is factored into a small tested helper so docs-only changes still get a stable CI summary while validation, release automation, shared-action, and tooling library changes run the relevant suites. The workflow uploads native or structured artifacts for changed files, actionlint JSON, npm install logs, JavaScript syntax logs, and pytest JUnit XML.
Which issue(s) this PR fixes:
N/A
Special notes for reviewers:
ShellCheck and pyflakes integrations are disabled for this first rollout because the repository has existing baseline findings outside this PR. The actionlint job also carries narrow ignores for the current
actions/create-github-app-token@v3client-idmetadata mismatch. The existing validation settings CI and post-merge regression canaries remain separate.Local validation run before opening the PR:
actionlintwith the same first-rollout options returned[].npm ci --ignore-scriptspassed invalidation/.node --check linting/config/lint_function/*.jspassed.pytest tooling_lib/tests/test_ci_plan.pypassed.1112 passed.701 passed.Changelog input
Additional documentation
This section can be blank.