Skip to content
Snippets Groups Projects
ci.yml 4.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • name: CI
    on:
        push:
            branches:
            - main
        pull_request:
        schedule:
            - cron:  '17 3 * * 0'
    
    
    concurrency:
        group: ${{ github.head_ref || github.ref_name }}
        cancel-in-progress: true
    
    
        typos:
            name: Typos
            runs-on: ubuntu-latest
            steps:
            -   uses: actions/checkout@v4
            -   uses: crate-ci/typos@master
    
    
    Andreas Klöckner's avatar
    Andreas Klöckner committed
        ruff:
            name: Ruff
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
                uses: actions/setup-python@v5
    
            -   name: "Main Script"
                run: |
    
    Andreas Klöckner's avatar
    Andreas Klöckner committed
                    pip install ruff
                    ruff check
    
    
        pylint:
            name: Pylint
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
                    USE_CONDA_BUILD=1
    
                    curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/master/prepare-and-run-pylint.sh
    
                    . ./prepare-and-run-pylint.sh "$(basename $GITHUB_REPOSITORY)" examples/*.py test/test_*.py
    
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
        mypy:
            name: Mypy
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
            -   name: "Main Script"
                run: |
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
                    build_py_project_in_conda_env
    
                    python -m pip install mypy pytest
    
    Matthias Diener's avatar
    Matthias Diener committed
                    ./run-mypy.sh
    
    Alexandru Fikl's avatar
    Alexandru Fikl committed
    
    
        pytest3_pocl:
            name: Pytest Conda Py3 POCL
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
    
                    build_py_project_in_conda_env
                    test_py_project
    
    
        pytest3_intel_cl:
    
            name: Pytest Conda Py3 Intel
    
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
                    curl -L -O https://raw.githubusercontent.com/illinois-scicomp/machine-shop-maintenance/main/install-intel-icd.sh
                    sudo bash ./install-intel-icd.sh
    
                    CONDA_ENVIRONMENT=.test-conda-env-py3.yml
                    echo "- ocl-icd-system" >> "$CONDA_ENVIRONMENT"
                    sed -i "/pocl/ d" "$CONDA_ENVIRONMENT"
                    export PYOPENCL_TEST=intel
                    source /opt/enable-intel-cl.sh
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
                    build_py_project_in_conda_env
                    test_py_project
    
    
        examples3:
            name: Examples Conda Py3
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                run: |
                    export MPLBACKEND=Agg
                    USE_CONDA_BUILD=1
    
                    curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-py-project-and-run-examples.sh
    
                    . ./build-py-project-and-run-examples.sh
    
        docs:
            name: Documentation
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
                uses: actions/setup-python@v5
    
                with:
                    python-version: '3.x'
            -   name: "Main Script"
                run: |
    
                    curl -L -O https://tiker.net/ci-support-v0
    
                    build_py_project_in_conda_env
                    conda install graphviz
    
    
                    CI_SUPPORT_SPHINX_VERSION_SPECIFIER=">=4.0"
    
                    build_docs
    
        downstream_tests:
            strategy:
                matrix:
    
                    downstream_project: [meshmode, grudge, mirgecom, mirgecom_examples]
    
            name: Tests for downstream project ${{ matrix.downstream_project }}
            runs-on: ubuntu-latest
            steps:
    
            -   uses: actions/checkout@v4
    
            -   name: "Main Script"
                env:
                    DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }}
                run: |
    
                    curl -L -O https://tiker.net/ci-support-v0
                    . ./ci-support-v0
    
                    test_downstream "$DOWNSTREAM_PROJECT"
    
    Matthias Diener's avatar
    Matthias Diener committed
                    if [[ "$DOWNSTREAM_PROJECT" = "meshmode" ]]; then
                        python ../examples/simple-dg.py --lazy
                    fi