CI #92
Workflow file for this run
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
| # SPDX-License-Identifier: MPL-2.0 | |
| name: CI | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| julia-version: ['1.10', '1.11'] | |
| os: [ubuntu-latest] | |
| # macos-latest dropped 2026-06-19: macOS runner minutes exhausted -> ci.yml | |
| # startup_failure blocked merges; ubuntu covers the matrix. Restore when available. | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: julia-actions/setup-julia@4c0cb0fce8556fdb04a90347310e5db8b1f98fb9 # v2 | |
| with: | |
| version: ${{ matrix.julia-version }} | |
| - uses: julia-actions/cache@e97f6fc1a6e21c82253c85e269be7340376aa425 # v2 | |
| # Skein depends on the estate packages AcceleratorGate.jl (hard dep) and | |
| # KnotTheory.jl (weakdep) as adjacent path-deps — Manifest.toml pins | |
| # path = "../AcceleratorGate.jl" and "../KnotTheory.jl". Neither is in a | |
| # registry, so check them out as siblings before instantiate, otherwise | |
| # Pkg.instantiate() fails with "AcceleratorGate ... required but not installed". | |
| - name: Check out sibling estate path-deps | |
| run: | | |
| git clone --depth 1 https://github.com/hyperpolymath/AcceleratorGate.jl.git ../AcceleratorGate.jl | |
| git clone --depth 1 https://github.com/hyperpolymath/KnotTheory.jl.git ../KnotTheory.jl | |
| # The committed Manifest.toml was resolved with Julia 1.12 and pins stdlib | |
| # versions (JuliaSyntaxHighlighting 1.12.0, StyledStrings) that are | |
| # UNSATISFIABLE on the 1.10/1.11 matrix. Pkg.resolve() can't fix it — it | |
| # preserves those pins. So discard the stale manifest and re-create it fresh | |
| # for this Julia version, devving the unregistered estate path-deps. | |
| # (Pkg.develop on the KnotTheory weakdep only sets its source path; it does | |
| # NOT promote it to a hard dep — Project.toml is unchanged.) | |
| - name: Install, build, test | |
| run: | | |
| rm -f Manifest.toml | |
| julia --project=. -e 'using Pkg; Pkg.develop([PackageSpec(path="../AcceleratorGate.jl"), PackageSpec(path="../KnotTheory.jl")]); Pkg.instantiate(); Pkg.build(); Pkg.test()' |