Skip to content
Snippets Groups Projects
ci.yml 5.83 KiB
Newer Older
name: CI
on:
    push:
        branches:
        - main
    pull_request:
    schedule:
        - cron:  '17 3 * * 0'

jobs:
    flake8:
        name: Flake8
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
            uses: actions/setup-python@v4
                # matches compat target in setup.py
                python-version: '3.8'
        -   name: "Main Script"
            run: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                install_and_run_flake8 "$(get_proj_name)" examples/*.py test/*.py
    pylint:
        name: Pylint
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            run: |
                CONDA_ENVIRONMENT=.test-conda-env-py3.yml
                echo "- matplotlib" >> $CONDA_ENVIRONMENT
                echo "- pyopengl" >> $CONDA_ENVIRONMENT
                echo "- ipython" >> $CONDA_ENVIRONMENT
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                build_py_project_in_conda_env
                run_pylint "$(get_proj_name)" test/*.py
Alexandru Fikl's avatar
Alexandru Fikl committed
    mypy:
        name: Mypy
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
Alexandru Fikl's avatar
Alexandru Fikl committed
        -   name: "Main Script"
            run: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                ./configure.py --cl-use-shipped-ext
                build_py_project_in_conda_env
                python -m pip install mypy types-setuptools
                python -m mypy --show-error-codes pyopencl test

        name: Pytest Linux POCL
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            run: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                ./configure.py --cl-use-shipped-ext
Isuru Fernando's avatar
Isuru Fernando committed
                build_py_project_in_conda_env
                test_py_project
    pytest_intel:
        name: Pytest Linux Intel CL
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            run: |
                export CONDA_ENVIRONMENT=.test-conda-env-py3.yml
                .ci/hack-intel-cl-into-conda-env.sh
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                ./configure.py --cl-use-shipped-ext
Isuru Fernando's avatar
Isuru Fernando committed
                build_py_project_in_conda_env
                test_py_project

    pytest_win:
        name: Pytest Windows Intel CL
        runs-on: windows-latest
        steps:
        -   uses: actions/checkout@v3
Isuru Fernando's avatar
Isuru Fernando committed
        -   name: "Main Script"
            shell: bash
            run: |
                set -x
                export CONDA_ENVIRONMENT=.test-conda-env-py3.yml
Isuru Fernando's avatar
Isuru Fernando committed

                sed -i 's/- ocl-icd/- khronos-opencl-icd-loader/g' "$CONDA_ENVIRONMENT"
                sed -i '/- git/d' "$CONDA_ENVIRONMENT"

                .ci/hack-intel-cl-into-conda-env.sh
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
Isuru Fernando's avatar
Isuru Fernando committed
                ./configure.py --cl-use-shipped-ext
                build_py_project_in_conda_env
                test_py_project
    pytest_mac:
        name: Pytest Mac POCL
        runs-on: macos-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            run: |
                export CC=gcc
                CONDA_ENVIRONMENT=.test-conda-env.yml
                grep -v ocl-icd .test-conda-env-py3.yml > $CONDA_ENVIRONMENT

                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                ./configure.py --cxxflags= --ldflags= --cl-libname=OpenCL
Isuru Fernando's avatar
Isuru Fernando committed
                build_py_project_in_conda_env
                test_py_project

    docs:
        name: Documentation
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
            uses: actions/setup-python@v4
            with:
                python-version: '3.x'
        -   name: "Main Script"
            run: |
                CONDA_ENVIRONMENT=.test-conda-env-py3.yml
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                ./configure.py --cl-use-shipped-ext
                build_py_project_in_conda_env
                build_docs

    examples:
        name: Examples
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            run: |
                EXTRA_INSTALL="pillow cgen mako imageio"

                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                build_py_project_in_conda_env
                (cd examples; rm -f gl_*)
                run_examples --no-require-main
    downstream_tests:
        strategy:
            matrix:
                downstream_project: [loopy, boxtree, meshmode]
        name: Tests for downstream project ${{ matrix.downstream_project }}
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v3
        -   name: "Main Script"
            env:
                DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }}
            run: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                TEST_ENV_ROOT="$(pwd)/$DOWNSTREAM_PROJECT/.conda-root/envs/testing"
                ./configure.py --cl-inc-dir="$TEST_ENV_ROOT/include" --cl-lib-dir="$TEST_ENV_ROOT/lib"
                git add -f siteconf.py
                prepare_downstream_build "https://github.com/inducer/$DOWNSTREAM_PROJECT.git"
                sed -i 's/pyopencl/ocl-icd/' .test-conda-env-py3.yml
                build_py_project_in_conda_env
                test_py_project

# vim: sw=4