name: CI on: push: branches: - main pull_request: paths-ignore: - 'doc/*.rst' schedule: - cron: '17 3 * * 0' jobs: ruff: name: Ruff runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 - name: "Main Script" run: | pip install ruff ruff check validate_cff: name: Validate CITATION.cff runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.x' - run: | pip install cffconvert cffconvert -i CITATION.cff --validate pylint: name: Pylint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.x' - name: "Main Script" run: | EXTRA_INSTALL="numpy pymbolic orderedsets" curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-pylint.sh . ./prepare-and-run-pylint.sh "$(basename $GITHUB_REPOSITORY)" mypy: name: Mypy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.x' - name: "Main Script" run: | EXTRA_INSTALL="numpy" curl -L -O 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 }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: python-version: ["3.8", "3.9", "3.x", "pypy3.9"] os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 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 EXTRA_INSTALL="numpy frozendict immutabledict orderedsets constantdict immutables pyrsistent attrs" curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project.sh . ./build-and-test-py-project.sh pytest_nonumpy: name: Pytest without Numpy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.x' - name: "Main Script" run: | rm pytools/{convergence,spatial_btree,obj_array,mpiwrap}.py curl -L -O 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@v4 # - # uses: actions/setup-python@v5 # with: # python-version: '3.x' # - name: "Main Script" # run: | # EXTRA_INSTALL="numpy pymbolic" # curl -L -O https://tiker.net/ci-support-v0 # . ./ci-support-v0 # build_py_project_in_venv # run_examples downstream_tests: strategy: matrix: downstream_project: [loopy, pytato] 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" 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: | EXTRA_INSTALL="numpy" curl -L -O https://tiker.net/ci-support-v0 . ci-support-v0 build_py_project_in_venv build_docs # vim: sw=4