Skip to content

tests/grouped-tests: optional container input (restore FEniCS-style containerized CI)#86

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:tests-container-input
Jun 10, 2026
Merged

tests/grouped-tests: optional container input (restore FEniCS-style containerized CI)#86
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:tests-container-input

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown

What

Adds an optional container input (string, default "") to the reusable test workflows:

  • tests.yml: new container input, applied as container: ${{ inputs.container }} on the tests job. An empty string evaluates to "no container" per GitHub Actions semantics, so existing callers are unaffected.
  • grouped-tests.yml: same input, passed through to tests.yml for every matrix job.
  • README: documented the new input in both workflow tables.

Why

Packages wrapping Python stacks need their test jobs to run inside a prebuilt Docker image. FEniCS.jl's pre-conversion CI ran in container: cmhyett/julia-fenics:latest (the FEniCS Python stack); the grouped-tests conversion (SciML/FEniCS.jl#154) dropped the container, so every Core job fails because the FEniCS Python libraries are missing. This input restores that capability through the centralized workflows.

Verification

  • actionlint clean on both modified workflows.
  • Both files parse as valid YAML; container input present with empty-string default.

After merge this needs a v1 retag for @v1 callers (FEniCS.jl#154 depends on it).

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

Allows packages that need a prebuilt system stack (e.g. FEniCS.jl's
Python/FEniCS image cmhyett/julia-fenics:latest) to run their test jobs
inside a Docker container, restoring pre-conversion containerized CI.
Empty default means no container, the standard GHA semantics for an
empty container expression.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/FEniCS.jl that referenced this pull request Jun 10, 2026
…ts caller

The grouped-tests conversion dropped the Docker container the pre-conversion
CI ran in, so every Core job failed with the FEniCS Python stack missing.
Pass it through the new container input of grouped-tests.yml.

Depends on SciML/.github#86 merging and a v1 retag.

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 10, 2026 10:57
@ChrisRackauckas ChrisRackauckas merged commit 759cc18 into SciML:master Jun 10, 2026
1 of 2 checks passed
ChrisRackauckas added a commit to SciML/FEniCS.jl that referenced this pull request Jun 15, 2026
* Canonical CI: grouped-tests.yml + root test/test_groups.toml

Convert the root test workflow (CI.yml) to the canonical thin caller of
SciML/.github/.github/workflows/grouped-tests.yml@v1, declaring its
group x version matrix once in test/test_groups.toml.

- CI.yml: replace the hand-maintained group x version matrix job with the
  reusable grouped-tests.yml caller (coverage:false; on:/triggers preserved
  verbatim). Linux-only (no os axis).
- test/test_groups.toml: [Core] on [lts,1,pre] (reproduces the old matrix
  exactly) + newly-wired [QA] on [lts,1].
- runtests.jl: add GROUP dispatch (existing suite is Core/All; GROUP==QA runs
  the isolated QA env).
- test/qa/{Project.toml,qa.jl}: isolated Aqua + JET environment running
  Aqua.test_all(FEniCS) and JET.test_package(FEniCS; target_defined_modules=true).
- Project.toml: raise [compat] julia 1.6 -> 1.10 (LTS floor); add Test = "1"
  compat for the test-only extra (benign metadata fixes).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Restore FEniCS container (cmhyett/julia-fenics:latest) in grouped-tests caller

The grouped-tests conversion dropped the Docker container the pre-conversion
CI ran in, so every Core job failed with the FEniCS Python stack missing.
Pass it through the new container input of grouped-tests.yml.

Depends on SciML/.github#86 merging and a v1 retag.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: re-trigger grouped-tests after SciML/.github@v1 gained container input

The grouped-tests caller passes container: cmhyett/julia-fenics:latest, which
was unsupported by SciML/.github grouped-tests.yml@v1 at the time of the last
run (startup_failure on 2026-06-10). v1 now resolves to v1.13.0, which adds the
container input, so re-run CI to validate.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Adopt SciMLTesting v1.2 folder-based run_tests (on top of grouped-tests conversion)

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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