# "Python 2.7 AMD CPU":
#   script:
#   - export PY_EXE=python2.7
#   - export PYOPENCL_TEST=amd: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"
#   allow_failure: true
#   tags:
#   - python2.7
#   - amd-cl-cpu
#   - opengl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 Intel CPU:
#   script:
#   - export PY_EXE=python3.6
#   - 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"
#   allow_failure: true
#   tags:
#   - python3.6
#   - intel-cl-cpu
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 AMD CPU:
#   script:
#   - export PY_EXE=python3.6
#   - export PYOPENCL_TEST=amd: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"
#   allow_failure: true
#   tags:
#   - python3.6
#   - amd-cl-cpu
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 Titan X:
#   script:
#   - export PY_EXE=python3.6
#   - 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.6
#   - nvidia-titan-x
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 Titan V:
#   script:
#   - export PY_EXE=python3.6
#   - 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.6
#   - nvidia-titan-v
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 K40:
#   script:
#   - export PY_EXE=python3.6
#   - 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.6
#   - nvidia-k40
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 AMD GPU:
#   script:
#   - export PY_EXE=python3.6
#   - export PYOPENCL_TEST=amd:fiji
#   - 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"
#   allow_failure: true
#   tags:
#   - python3.6
#   - amd-fiji
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 2.7 POCL:
#   script:
#   - export PY_EXE=python2.7
#   - export PYOPENCL_TEST=portable
#   - 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:
#   - python2.7
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.7 POCL:
#   script:
#   - export PY_EXE=python3.7
#   - export PYOPENCL_TEST=portable
#   - 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.7
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 POCL CL 1.1:
#   script:
#   - export PY_EXE=python3.6
#   - export PYOPENCL_TEST=portable
#   - 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.6
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 POCL:
#   script:
#   - export PY_EXE=python3.6
#   - export PYOPENCL_TEST=portable
#   - 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.6
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 3.6 POCL (+GL and special functions):
#   script:
#   - export PY_EXE=python3.6
#   - export PYOPENCL_TEST=portable
#   - 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.6
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# Python 2.7 Apple:
#   script:
#   - export PY_EXE=python2.7
#   - export PYOPENCL_TEST=app:cpu
#   - export EXTRA_INSTALL="pybind11 numpy mako"
#   - export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
#   - 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:
#   - python2.7
#   - apple
#   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
#   - ". ./build-and-test-py-project-within-miniconda.sh"
#   tags:
#   - apple
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
#
# PyPy POCL:
#   script:
#   - export PY_EXE=pypy
#   - export PYOPENCL_TEST=portable
#
#   # https://github.com/pybind/pybind11/pull/1494
#   - export EXTRA_INSTALL="git+https://github.com/inducer/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"
  - py_version=3.7
  # 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 pyopencl test/test_*.py"
  tags:
  - python3.7
  except:
  - tags

Documentation:
  script:
  - EXTRA_INSTALL="pybind11 numpy mako matplotlib"
  - 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 pyopencl test"
  tags:
  - python3.6
  except:
  - tags