From e8fe7b06390d48733faa246ad414c58601a3992b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Wed, 17 Jun 2026 06:42:04 -0400 Subject: [PATCH] Fix develop-sources include path: anchor at GITHUB_WORKSPACE (unbreaks monorepo sublibrary CI) The "Develop in-repo [sources]" step (added in #98) runs with `shell: julia {0}`, which writes the body to a temp file under RUNNER_TEMP and executes it from there. Julia's `include` resolves a RELATIVE path against the including file's directory (RUNNER_TEMP), not GITHUB_WORKSPACE where `.sciml-dotgithub` is checked out -- so the relative `include(joinpath(".sciml-dotgithub", ...))` failed with `SystemError: opening file ".../_temp/.sciml-dotgithub/scripts/develop_sources.jl"`. This broke every monorepo's sublibrary CI (project != '.'/'@.') the moment v1.15.1 was retagged (e.g. ModelingToolkit Sublibrary CI). Anchor the include at ENV["GITHUB_WORKSPACE"] so it resolves regardless of the temp script's location. Verified by simulating the step (julia temp-script in RUNNER_TEMP, run from a third cwd, .sciml-dotgithub under GITHUB_WORKSPACE): the relative form reproduces the SystemError; the GITHUB_WORKSPACE-anchored form loads develop_sources cleanly. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/tests.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7e63549..f640da7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -162,7 +162,11 @@ jobs: if: "${{ inputs.buildpkg && inputs.project != '@.' && inputs.project != '.' }}" shell: julia --color=yes {0} run: | - include(joinpath(".sciml-dotgithub", "scripts", "develop_sources.jl")) + # `shell: julia {0}` writes this body to a temp file under RUNNER_TEMP and + # runs it from there, so a *relative* `include` resolves against RUNNER_TEMP, + # not the workspace where `.sciml-dotgithub` was checked out. Anchor at + # GITHUB_WORKSPACE so it resolves regardless of the script's location. + include(joinpath(ENV["GITHUB_WORKSPACE"], ".sciml-dotgithub", "scripts", "develop_sources.jl")) develop_sources(raw"${{ inputs.project }}") - name: "Install system packages"