Skip to content

CompatHelper: bump compat for IntervalArithmetic in [weakdeps] to 1, (keep existing compat) #5037

CompatHelper: bump compat for IntervalArithmetic in [weakdeps] to 1, (keep existing compat)

CompatHelper: bump compat for IntervalArithmetic in [weakdeps] to 1, (keep existing compat) #5037

Workflow file for this run

name: CI
on:
push:
branches:
- master
tags: ['*']
pull_request:
schedule:
- cron: '0 4 * * 6' # Run every Saturday
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
build_matrix:
name: Build Test Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- run: |
cat > matrix.yaml <<- EOM
- {mode: stable, arch: x64, os: ubuntu-latest, payload: minimal }
- {mode: stable, arch: x64, os: ubuntu-latest, payload: nominimal-noslow }
- {mode: stable, arch: x64, os: ubuntu-latest, payload: example }
- {mode: stable, arch: aarch64, os: macOS-latest, payload: minimal }
- {mode: stable, arch: x64, os: ubuntu-latest, payload: noslow-mpi }
- {mode: latest, arch: x64, os: ubuntu-latest, payload: minimal }
EOM
# Windows tests are disabled for PR builds
- if: ${{ github.event_name != 'pull_request' }}
run: |
cat >> matrix.yaml <<- EOM
- {mode: stable, arch: x64, os: windows-latest, payload: minimal }
EOM
- name: Convert to JSON
run: |
python3 -c 'import sys, yaml, json; json.dump(yaml.safe_load(sys.stdin), sys.stdout)' < matrix.yaml > matrix.json
- id: set-matrix
run: echo "matrix={\"include\":$(cat matrix.json)}" >> $GITHUB_OUTPUT
test:
name: Julia ${{ matrix.mode }} - ${{ matrix.os }} - ${{ matrix.payload }}
needs: build_matrix
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build_matrix.outputs.matrix) }}
env:
GKS_ENCODING: utf8
GKSwstype: 100 # Needed for Plots-related tests
PLOTS_TEST: true # Needed for Plots-related tests
DFTK_TEST_NPROCS: 2 # For MPI parallelised tests
steps:
- uses: actions/checkout@v5
- name: Setup Julia stable
uses: julia-actions/setup-julia@v2
with:
version: '1.10'
arch: ${{ matrix.arch }}
if: ${{ matrix.mode == 'stable' }}
- name: Setup Julia latest (pre-releases included)
uses: julia-actions/setup-julia@v2
with:
version: '1'
include-all-prereleases: true
arch: x64
if: ${{ matrix.mode == 'latest' }}
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
env:
DFTK_TEST_ARGS: ${{ matrix.payload }}
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v5
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}