Skip to content

ci: self-test this repo (actionlint + shellcheck + detection-script tests)#57

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:selfci-and-script-tests
Jun 5, 2026
Merged

ci: self-test this repo (actionlint + shellcheck + detection-script tests)#57
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:selfci-and-script-tests

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown

These reusable workflows and compute_affected_sublibraries.jl ship to ~all of SciML via @v1, but nothing validated a change to them before it propagated. This adds self-CI.

actionlint + shellcheck (docker://rhysd/actionlint, which bundles shellcheck) — lints every workflow and the shell in their run: steps.

Julia test suite for compute_affected_sublibraries.jl (test/runtests.jl) with fixture lib/ trees, asserting:

  • internal-only dependency graph; transitive reverse-dep closure
  • direct vs downstream (downstream → version 1 only)
  • test-only changes don't propagate to dependents; Project.toml changes do
  • non-lib/ changes select nothing
  • test_groups.toml: custom group, GPU runner array, timeout, and local_only skipped when the sublib is only pulled in transitively
  • EXCLUDES drops (group, version) pairs
  • end-to-end --projects-matrix emits valid JSON

main() is guarded behind PROGRAM_FILE == @__FILE__ so the script is include-able from tests without running. Also fixes the shellcheck findings the new lint surfaced in format-check.yml / format-suggestions-on-pr.yml (quote $GITHUB_OUTPUT; drop useless echo "$(...)").

Verified locally: actionlint+shellcheck exit 0 on all workflows; 37/37 tests pass.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

These reusable workflows + compute_affected_sublibraries.jl ship to the whole
org via @v1, but nothing validated a change to them. Add CI:

- actionlint (rhysd/actionlint image, which bundles shellcheck) lints every
  workflow and the shell in their run: steps.
- A Julia test suite for compute_affected_sublibraries.jl with fixture lib/
  trees, asserting: internal-only dependency graph, transitive reverse-deps,
  direct vs downstream(→v1), test-only changes don't propagate, Project.toml
  does, non-lib changes select nothing, test_groups.toml (custom group +
  GPU runner + timeout + local_only-skipped-when-downstream), EXCLUDES, and
  end-to-end --projects-matrix JSON output.

Guard main() behind `PROGRAM_FILE == @__FILE__` so the script is includable
from tests without running. Also fix the shellcheck findings the new lint
surfaced in format-check.yml / format-suggestions-on-pr.yml (quote
$GITHUB_OUTPUT; drop useless `echo "$(...)"`).

Verified locally: actionlint+shellcheck exit 0; 37/37 tests pass.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 5, 2026 09:11
@ChrisRackauckas ChrisRackauckas merged commit f49660b into SciML:master Jun 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants