# "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 Intel CPU:
#   script:
#   - export PY_EXE=python3
#   - 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
#   - intel-cl-cpu
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
# 
# Python 3 AMD CPU:
#   script:
#   - export PY_EXE=python3
#   - 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
#   - amd-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
# 
# 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:
#   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 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 POCL:
#   script:
#   - export PY_EXE=python3
#   - 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
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
# 
# Python 3 POCL CL 1.1:
#   script:
#   - export PY_EXE=python3
#   - 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
#   - pocl
#   except:
#   - tags
#   artifacts:
#     reports:
#       junit: test/pytest.xml
# 
# Python 3 POCL:
#   script:
#   - export PY_EXE=python3
#   - 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
#   - 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
#   - 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 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:
  # Pin numpy to 1.15 because of https://github.com/PyCQA/pylint/issues/2721
  - EXTRA_INSTALL="pybind11 numpy==1.15 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/pylint-flexible-config/prepare-and-run-pylint.sh
  - ". ./prepare-and-run-pylint.sh pyopencl test/test_*.py"
  allow_failure: true
  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 pyopencl test"
#   tags:
#   - python3
#   except:
#   - tags
#