Skip to content

arch: Support more platforms #6874

arch: Support more platforms

arch: Support more platforms #6874

Workflow file for this run

name: Jupyter Notebooks
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
# Trigger the workflow on push or pull request,
# but only for the master branch
push:
branches:
- master
pull_request:
branches:
- master
jobs:
tutorials:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
DEVITO_ARCH: "${{ matrix.compiler }}"
DEVITO_LANGUAGE: ${{ matrix.language }}
strategy:
# Prevent all build to stop if a single one fails
fail-fast: false
matrix:
name: [
tutos-ubuntu-gcc-py39,
tutos-osx-clang-py311,
tutos-docker-gcc-py39
]
include:
- name: tutos-ubuntu-gcc-py39
os: ubuntu-latest
compiler: gcc
language: "openmp"
pyver: "3.9"
- name: tutos-osx-clang-py311
os: macos-latest
compiler: clang
language: "C"
pyver: "3.11"
- name: tutos-docker-gcc-py39
os: ubuntu-latest
compiler: gcc
language: "openmp"
pyver: "3.9"
steps:
- name: Checkout devito
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.pyver }}
if: "!contains(matrix.name, 'docker')"
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.pyver }}
- uses: maxim-lobanov/setup-xcode@v1
if: runner.os == 'macOS'
with:
xcode-version: latest-stable
- name: Build docker image
if: "contains(matrix.name, 'docker')"
run: |
docker build . --file docker/Dockerfile.devito --tag devito_img
- name: Set run prefix
run: |
if [ "${{ matrix.name }}" == 'tutos-docker-gcc-py39' ]; then
echo "RUN_CMD=docker run --rm -t --name testrun devito_img" >> $GITHUB_ENV
else
echo "RUN_CMD=" >> $GITHUB_ENV
fi
id: set-run
- name: Install dependencies
if: matrix.name != 'tutos-docker-gcc-py39'
run: |
python -m pip install --upgrade pip
pip install -e .[tests,extras]
pip install blosc
- name: Seismic notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval -k 'not dask' -k 'not synthetics' examples/seismic/tutorials/
${{ env.RUN_CMD }} py.test --nbval examples/seismic/acoustic/accuracy.ipynb
- name: Failing notebooks
continue-on-error: true
run: |
${{ env.RUN_CMD }} py.test --nbval examples/seismic/tutorials/14_creating_synthetics.ipynb
- name: Dask notebooks
if: runner.os != 'macOS'
run: |
${{ env.RUN_CMD }} py.test --nbval examples/seismic/tutorials/*dask*.ipynb
- name: Self-adjoint notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/seismic/self_adjoint/
- name: CFD notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/cfd
- name: User api notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/userapi
- name: Compiler notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/compiler
- name: Finance notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/finance
- name: Performance notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/performance
- name: ABC Notebooks
run: |
${{ env.RUN_CMD }} py.test --nbval examples/seismic/abc_methods