name: CI
on:
    push:
        branches:
        - main
    pull_request:
        paths-ignore:
        - 'doc/*.rst'
    schedule:
        - cron:  '17 3 * * 0'

jobs:
    flake8:
        name: Flake8
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v2
        -
            uses: actions/setup-python@v1
            with:
                python-version: '3.x'
        -   name: "Main Script"
            run: |
                curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh
                . ./prepare-and-run-flake8.sh "$(basename $GITHUB_REPOSITORY)" ./test

    pylint:
        name: Pylint
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v2
        -
            uses: actions/setup-python@v1
            with:
                python-version: '3.x'
        -   name: "Main Script"
            run: |
                EXTRA_INSTALL="pymbolic"
                curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-pylint.sh
                . ./prepare-and-run-pylint.sh "$(basename $GITHUB_REPOSITORY)" test/test_*.py

    mypy:
        name: Mypy
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v2
        -
            uses: actions/setup-python@v1
            with:
                python-version: '3.x'
        -   name: "Main Script"
            run: |
                curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-mypy.sh
                . ./prepare-and-run-mypy.sh python3 mypy

    pytest:
        name: Pytest on Py${{ matrix.python-version }}
        runs-on: ubuntu-latest
        strategy:
            matrix:
                python-version: [3.6, 3.7, 3.8, pypy3]
        steps:
        -   uses: actions/checkout@v2
        -
            uses: actions/setup-python@v1
            with:
                python-version: ${{ matrix.python-version }}
        -   name: "Main Script"
            run: |
                # untested, causes import error with Pytest >= 6.2.0
                # AK, 2020-12-13
                rm pytools/mpiwrap.py
                # just a forwarding sim, causes import error with Pytest >= 6.2.0
                # AK, 2020-12-13
                rm pytools/log.py

                EXTRA_INSTALL="numpy"
                curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh
                . ./build-and-test-py-project.sh

    #examples:
    #    name: Examples Py3
    #    runs-on: ubuntu-latest
    #    steps:
    #    -   uses: actions/checkout@v2
    #    -
    #        uses: actions/setup-python@v1
    #        with:
    #            python-version: '3.x'
    #    -   name: "Main Script"
    #        run: |
    #            EXTRA_INSTALL="numpy pymbolic"
    #            curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/ci-support.sh
    #            . ./ci-support.sh
    #            build_py_project_in_venv
    #            run_examples

    docs:
        name: Documentation
        runs-on: ubuntu-latest
        steps:
        -   uses: actions/checkout@v2
        -
            uses: actions/setup-python@v1
            with:
                python-version: '3.x'
        -   name: "Main Script"
            run: |
                EXTRA_INSTALL="numpy"
                curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/main/ci-support.sh
                . ci-support.sh
                build_py_project_in_venv
                build_docs

# vim: sw=4
