Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/unreleased/ci-baseline-json-runs-go.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- A pull request that changes only the committed baselines or figure pages under `docs/project/` now runs the Go test shards. `scripts/ci-changed-areas.sh` classified those files as documentation alone, so a baseline re-record was green on the pull request while the referee provenance and figure tests that read it never ran.
5 changes: 5 additions & 0 deletions scripts/ci-changed-areas-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ case_ pysysml python packaging/pypi-pysysml/pyproject.toml
# The Go hygiene suite caps every tracked fixture and test file, so these run it too.
case_ client-fixture go,python client/python/tests/testdata/large.json
case_ client-golden go,node client/node/test/render.golden.json
# The committed baselines and figure pages under docs/project are Go test inputs.
case_ project-baseline docs,go docs/project/pilot-differential-baseline.json
case_ project-figures docs,go docs/project/api-json-differential.md
case_ project-archive docs,go docs/project/archive/CHANGELOG-0.0-0.8.md
case_ unclaimed docs,go,java,julia,jupyterlab,matlab,mdk,node,python,rust,syson,vscode some-new-top-level/thing.txt

# The quick tier runs the Go suite for a service change but not every client; a
Expand All @@ -117,6 +121,7 @@ quick_case_ unclaimed go some-new-top-level/thing.txt
quick_case_ go-and-node go,node internal/syntax/parser/parser.go client/node/src/node/binary.ts
quick_case_ go-and-docs docs,go internal/syntax/parser/parser.go docs/guide/index.md
quick_case_ docs-only docs docs/guide/index.md
quick_case_ project-baseline docs,go docs/project/pilot-differential-baseline.json
quick_case_ java-manifest java,mdk,python client/java/pom.xml
quick_case_ node-only node client/node/src/node/binary.ts
quick_case_ vscode-grammar go,vscode editors/vscode/tools/gengrammar/grammar.go
Expand Down
5 changes: 4 additions & 1 deletion scripts/ci-changed-areas.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ syson_pattern='^editors/syson/'
# The Go hygiene suite ratchets every tracked test file and fixture, wherever it
# lives, so one of those changing anywhere runs the Go area.
hygiene_pattern='(^|/)testdata/|\.golden\.|_test\.go$'
# Go tests (the referees' provenance and figure checks, doc-counts) read the committed
# baselines and figure pages under docs/project, so a change there runs Go as well as docs.
project_inputs_pattern='^docs/project/.*\.(json|md)$'

known_pattern="$service_pattern|$docs_pattern|$node_pattern|$python_pattern|$java_pattern|$rust_pattern|$julia_pattern|$matlab_pattern|$vscode_pattern|$jupyterlab_pattern|$mdk_pattern|$syson_pattern|^\.agents/|^\.gitignore$|^\.gitattributes$|^LICENSE|^packaging/"

Expand All @@ -61,7 +64,7 @@ emit() {
fanout=$service
[[ "${CI_TIER:-full}" = quick ]] && fanout=false

emit go "$( { [[ "$service" = true ]] || matches "$hygiene_pattern"; } && echo true || echo false)"
emit go "$( { [[ "$service" = true ]] || matches "$hygiene_pattern" || matches "$project_inputs_pattern"; } && echo true || echo false)"
emit docs "$( { [[ "$fanout" = true ]] || matches "$docs_pattern"; } && echo true || echo false)"
emit node "$( { [[ "$fanout" = true ]] || matches "$node_pattern"; } && echo true || echo false)"
# The client-manifest/Python version lockstep tests live in the Python suite,
Expand Down
Loading