CI #39
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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://gitlab.tiker.net/inducer/ci-support/raw/main/prepare-and-run-flake8.sh | |
. ./prepare-and-run-flake8.sh "$(basename $GITHUB_REPOSITORY)" ./test examples proto-tests contrib | |
pylint: | |
name: Pylint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: "Main Script" | |
run: | | |
sed 's/python=3/python=3.7/' .test-conda-env-py3.yml > .test-conda-env.yml | |
USE_CONDA_BUILD=1 | |
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)" test/test_*.py | |
mypy: | |
name: Mypy | |
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 | |
python -m pip install mypy | |
./run-mypy.sh | |
pytest: | |
name: Conda Pytest | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: "Main Script" | |
run: | | |
curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh | |
. ./build-and-test-py-project-within-miniconda.sh | |
pytest_intel: | |
name: Conda Pytest with Intel CL | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 | |
pytest_no_arg_check: | |
name: Conda Pytest without arg check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: "Main Script" | |
run: | | |
curl -L -O https://gitlab.tiker.net/inducer/ci-support/raw/main/build-and-test-py-project-within-miniconda.sh | |
export _LOOPY_SKIP_ARG_CHECKS=1 | |
. ./build-and-test-py-project-within-miniconda.sh | |
pytest_twice: | |
name: Conda Pytest Twice (for cache behavior) | |
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 ) | |
( test_py_project ) | |
examples: | |
name: Conda 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 | |
rewrite_pyopencl_test | |
. ./.ci/examples-funcs.sh | |
install_example_prereqs | |
run_py_examples | |
run_ipynb_examples | |
run_floopy_examples | |
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 | |
downstream_tests: | |
strategy: | |
matrix: | |
downstream_project: [arraycontext, meshmode, grudge, pytential, pytato] | |
fail-fast: false | |
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_downstream "$DOWNSTREAM_PROJECT" | |
downstream_firedrake: | |
name: Tests for downstream project Firedrake | |
runs-on: ubuntu-latest | |
container: | |
image: 'firedrakeproject/firedrake' | |
steps: | |
- name: "Main script" | |
run: | | |
cd /home/firedrake | |
export HOME="$(pwd)" | |
mkdir loopy | |
cd loopy | |
git init | |
git remote add origin "https://github.com/$GITHUB_REPOSITORY.git" | |
git fetch origin "$GITHUB_REF" | |
git checkout FETCH_HEAD | |
git submodule update --init | |
. /home/firedrake/firedrake/bin/activate | |
pip install --editable . | |
pip uninstall -y pytools | |
pip uninstall -y pymbolic | |
pip install "git+https://github.com/inducer/pytools.git#egg=pytools" | |
pip install "git+https://github.com/inducer/pymbolic.git#egg=pymbolic" | |
cd /home/firedrake/firedrake/src/firedrake | |
# patch so exception messages get shown | |
curl -L https://gist.githubusercontent.com/inducer/17d7134ace215f0df1f3627eac4195c7/raw/63edfaf2ec8bf06987896569a4f24264df490e9e/firedrake-debug-patch.diff | patch -p1 | |
pytest --tb=native -rsxw --durations=10 -m 'not parallel' tests/multigrid/ | |
# vim: sw=4 |