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
            with:
                # 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
                build_py_project_in_conda_env
                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: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                build_py_project_in_conda_env
                run_pylint "$(get_proj_name)" examples/*.py test/*.py

    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: |
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0
                build_py_project_in_conda_env
                build_docs

    pytest3:
        name: Conda Python 3
        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
                build_py_project_in_conda_env
                test_py_project

    py3example:
        name: Python 3 Examples
        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
                build_py_project_in_conda_env
                run_examples

    downstream_tests:
        strategy:
            matrix:
                downstream_project: [sumpy, pytential]
        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: |
                export PYTEST_ADDOPTS=${PYTEST_ADDOPTS:-"-m 'not slowtest'"}
                curl -L -O https://tiker.net/ci-support-v0
                . ci-support-v0

                if [[ "$DOWNSTREAM_PROJECT" == "pytential" && "$GITHUB_HEAD_REF" == "rename-nterms" ]]; then
                   DOWNSTREAM_PROJECT=https://github.com/gaohao95/pytential.git@rename-nterms
                fi
                test_downstream "$DOWNSTREAM_PROJECT"
# vim: sw=4
