Skip to content
Merged
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
29 changes: 29 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,24 @@ jobs:
- os: ubuntu-latest
arch: x64
version: '1.12'
- os: macos-latest
arch: arm64
version: '1.12'
# Windows is disabled while the silent test-suite stall is being
# debugged locally. The 90-minute job cap is hit consistently even
# after warm depot cache, D:-drive depot, coverage off and
# check_bounds=auto reduce setup + pre-test precompile to ~3
# minutes. The test runner then goes silent for 70+ minutes with
# no output before the cap, so the stall is inside the test suite
# itself. Re-enable once the hung @testset is identified and
# either fixed or skipped.

steps:
- name: Cap precompile concurrency (macOS)
if: runner.os == 'macOS'
shell: bash
run: echo "JULIA_NUM_PRECOMPILE_TASKS=2" >> "$GITHUB_ENV"

- name: Checkout OMBackend.jl
uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -84,13 +100,26 @@ jobs:
uses: julia-actions/julia-runtest@v1
with:
project: OMBackend.jl
# Coverage forces --pkgimages=no, which rejects the warm depot cache
# and forces a full precompile on every run. Keep coverage on Linux,
# where it is cheap, and disable it on Windows and macOS so the
# restored pkgimage cache is actually usable on those runners.
coverage: ${{ runner.os == 'Linux' }}
# Use Julia's default bounds-check behavior (honor @inbounds) instead
# of the action default --check-bounds=yes. The forced setting is a
# separate precompile configuration, so it triggers a full pkgimage
# rebuild of every dependency on test entry and discards the warm
# depot cache restored above.
check_bounds: auto

- name: Process coverage
if: runner.os == 'Linux'
uses: julia-actions/julia-processcoverage@v1
with:
directories: OMBackend.jl/src

- name: Upload coverage to Codecov
if: runner.os == 'Linux'
uses: codecov/codecov-action@v4
with:
files: lcov.info
Expand Down
Loading