# Environment variables
#
# * PYTEST_ADDOPTS is used to filter test runs. The default value is "-k-slowtest",
#   which skips the slow running tests.
# * SKIP_EXAMPLES, if non-empty, can be used to skip the examples job.

Python 2.7 POCL:
  script:
  - export PY_EXE=python2.7
  - export PYOPENCL_TEST=portable
  - export PYTEST_ADDOPTS=${PYTEST_ADDOPTS:--k-slowtest}
  - export EXTRA_INSTALL="Cython pybind11 numpy scipy 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
  - large-node
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL:
  script:
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable
  - export PYTEST_ADDOPTS=${PYTEST_ADDOPTS:--k-slowtest}
  - export EXTRA_INSTALL="Cython pybind11 numpy scipy 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
  - large-node
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Intel:
  script:
  - export PY_EXE=python3
  - source /opt/enable-intel-cl.sh
  - export PYOPENCL_TEST="intel(r):pu"
  - export EXTRA_INSTALL="pybind11 numpy scipy 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
  - large-node
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 POCL Examples:
  script:
  - test -n "$SKIP_EXAMPLES" && exit
  - export PY_EXE=python3
  - export PYOPENCL_TEST=portable
  - export EXTRA_INSTALL="Cython pybind11 numpy mako pyvisfile matplotlib"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-py-project-and-run-examples.sh
  - ". ./build-py-project-and-run-examples.sh"
  tags:
  - python3
  - pocl
  - large-node
  except:
  - tags
  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Conda:
  script:
  - export SUMPY_FORCE_SYMBOLIC_BACKEND=symengine
  - export CONDA_ENVIRONMENT=.test-conda-env-py3.yml
  - export PYTEST_ADDOPTS=${PYTEST_ADDOPTS:--k-slowtest}
  - export REQUIREMENTS_TXT=.test-conda-env-py3-requirements.txt
  - 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:
  - linux
  - large-node
  except:
  - tags

  artifacts:
    reports:
      junit: test/pytest.xml

Python 3 Conda Apple:
  script:
  - export LC_ALL=en_US.UTF-8
  - export LANG=en_US.UTF-8
  - export CONDA_ENVIRONMENT=.test-conda-env-py3-macos.yml
  - export PYTEST_ADDOPTS=${PYTEST_ADDOPTS:--k-slowtest}
  - export REQUIREMENTS_TXT=.test-conda-env-py3-requirements.txt
  - export CC=clang
  - set -o xtrace
  - 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
  retry: 2

  artifacts:
    reports:
      junit: test/pytest.xml

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

Pylint:
  script:
  # Needed to avoid name shadowing issues when running from source directory.
  - PROJECT_INSTALL_FLAGS="--editable"
  - export PY_EXE=python3
  # Pin to numpy 1.15
  # See https://github.com/PyCQA/pylint/issues/2721
  - EXTRA_INSTALL="Cython pybind11 numpy==1.15 mako matplotlib"
  - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/prepare-and-run-pylint.sh
  - ". ./prepare-and-run-pylint.sh pytential test/test_*.py"
  tags:
  - python3
  except:
  - tags

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 pytential test examples"
  tags:
  - python3
  except:
  - tags
