Python 3 Intel CPU:
  script:
  - export PY_EXE=python3
  - source /opt/enable-intel-cl.sh
  - export PYOPENCL_TEST="intel(r):pu"
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - intel-cl-cpu
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Titan X:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=nvi:titan
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - nvidia-titan-x
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Titan V:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=nvi:titan
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - nvidia-titan-v
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

# https://github.com/illinois-scicomp/machine-shop-maintenance/issues/7

# Python 3 K40:
#   script:
#   - export PY_EXE=python3
#   - export PYOPENCL_TEST=nvi:k40
#   - export EXTRA_INSTALL="pybind11 numpy mako"
#   - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
#   - ". ./build-and-test-py-project.sh"
#   tags:
#   - python3
#   - nvidia-k40
#   except:
#   - tags
#
#   artifacts:
#     reports:
#       junit: test/pytest.xml

Python 3 AMD GPU:
  allow_failure: true
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=amd:gfx803
  - export EXTRA_INSTALL="pybind11 numpy mako"

  # https://andreask.cs.illinois.edu/MachineShop/UserNotes
  - export OCL_ICD_VENDORS=/etc/OpenCLwithAMD/vendors

  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - amd-fiji
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable:pthread
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - pocl
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL CL 1.1:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable:pthread
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - echo "CL_PRETEND_VERSION = '1.1'" > siteconf.py
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - pocl
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable:pthread
  - export EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - pocl
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL (+GL and special functions):
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable:pthread
  - export EXTRA_INSTALL="pybind11 numpy mako scipy pyfmmlib"
  - echo "CL_ENABLE_GL = True" > siteconf.py
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"
  tags:
  - python3
  - pocl
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Conda Apple:
  script:
  - CONDA_ENVIRONMENT=.test-conda-env-py3.yml
  - export CC=gcc
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project-within-miniconda.sh
  - "./configure.py --cxxflags= --ldflags= --cl-libname=OpenCL"
  - ". ./build-and-test-py-project-within-miniconda.sh"
  tags:
  - apple
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

PyPy3 POCL:
  script:
  - export PY_EXE=pypy3
  - export PYOPENCL_TEST=portable:pthread

  # On pypy, this seems to install old versions from the package index
  # independently of whether newer ones are already present.
  - rm -f pyproject.toml 
  - export EXTRA_INSTALL="pybind11 numpy mako"

  - export NO_DOCTESTS=1
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project.sh
  - ". ./build-and-test-py-project.sh"

  tags:
  - pypy
  - pocl
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Pylint:
  script:
  - EXTRA_INSTALL="pybind11 numpy mako matplotlib PyOpenGl IPython"
  - export PY_EXE=python3
  # After installation, PyOpenCL cannot be used from the source directory due
  # to package shadowing. To work around this, build in editable mode so there
  # is only one copy of everything.
  - PROJECT_INSTALL_FLAGS="--editable"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/prepare-and-run-pylint.sh
  - . ./prepare-and-run-pylint.sh "$CI_PROJECT_NAME" test/test_*.py
  tags:
  - python3
  except:
  - tags

Documentation:
  script:
  - EXTRA_INSTALL="pybind11 numpy mako"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-docs.sh
  - ". ./build-docs.sh"
  tags:
  - linux
  only:
  - master

Flake8:
  script:
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/prepare-and-run-flake8.sh
  - . ./prepare-and-run-flake8.sh "$CI_PROJECT_NAME" test
  tags:
  - python3
  except:
  - tags