Skip to content

schur4: correct accuracy caveat (genuine solver error vs LAPACK, not … #195

schur4: correct accuracy caveat (genuine solver error vs LAPACK, not …

schur4: correct accuracy caveat (genuine solver error vs LAPACK, not … #195

Workflow file for this run

name: CI
on:
push:
pull_request:
jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1.9'
- '1.10'
- '1.11'
os:
- ubuntu-latest
arch:
- x64
env:
# Skip visualization packages in CI (no display available)
HYQMOM_SKIP_PLOTTING: "true"
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v2
with:
cache-name: hyqmom-jl
# Remove GLMakie from Project.toml for CI (headless environment)
- name: Remove GLMakie dependency for CI
env:
HYQMOM_SKIP_PLOTTING: "true"
run: |
echo "Removing GLMakie to avoid X11/GLFW errors in CI..."
# Remove GLMakie from Project.toml in multiple sections
if grep -q "GLMakie" Project.toml; then
echo "Found GLMakie in Project.toml, removing from all sections..."
# Remove from [deps]
sed -i '/^GLMakie = /d' Project.toml
# Remove from [compat]
sed -i '/^GLMakie = /d' Project.toml
# Remove GLMakie from [targets] test array
sed -i 's/, "GLMakie"//g' Project.toml
sed -i 's/"GLMakie", //g' Project.toml
sed -i 's/"GLMakie"//g' Project.toml
echo "GLMakie removed from Project.toml"
echo "Modified Project.toml:"
cat Project.toml
else
echo "GLMakie not found in Project.toml"
fi
# Remove Manifest to force clean resolve
if [ -f Manifest.toml ]; then
rm -f Manifest.toml
echo "Manifest.toml removed for clean resolve"
fi
- uses: julia-actions/julia-buildpkg@v1
with:
project: .
- uses: julia-actions/julia-runtest@v1
with:
project: .
- uses: julia-actions/julia-processcoverage@v1
if: matrix.version == '1.11' && matrix.os == 'ubuntu-latest'
with:
directories: src
- uses: codecov/codecov-action@v4
if: matrix.version == '1.11' && matrix.os == 'ubuntu-latest'
with:
files: lcov.info
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
mpi-test:
name: MPI tests (Julia 1.10, 2 ranks)
runs-on: ubuntu-latest
env:
HYQMOM_SKIP_PLOTTING: "true"
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: '1.10'
arch: x64
- name: Install MPI (MPICH)
run: |
sudo apt-get update
sudo apt-get install -y mpich libmpich-dev
- name: Instantiate project
run: julia --project=. -e 'using Pkg; Pkg.instantiate()'
- name: Run MPI tests with coverage (1 and 2 ranks)
run: |
mpiexec -n 1 julia --project=. --code-coverage=user test/test_mpi.jl
mpiexec -n 2 julia --project=. --code-coverage=user test/test_mpi.jl
- name: Process MPI coverage
uses: julia-actions/julia-processcoverage@v1
with:
directories: src
- name: Upload MPI coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: lcov.info
flags: mpi
name: codecov-mpi
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}