# Perform continuous integration testing with Travis CI.
#
# Copyright 2015 John McGehee. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

language: python

before_script:
  - ./.travis/install.sh

jobs:
  include:
    - stage: flake8
      script: ./.travis/run_flake.sh

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_plugin_test.sh
      python: 3.5.9
      env:
        - PYTHON=py35
        - PY_VERSION=3.5.9

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      python: 3.6.9
      env:
        - PYTHON=py36
        - PY_VERSION=3.6.9

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      python: 3.7.5
      dist: xenial
      sudo: true
      env:
        - PYTHON=py37
        - PY_VERSION=3.7.5

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      python: 3.8.1
      dist: xenial
      sudo: true
      env:
        - PYTHON=py38
        - PY_VERSION=3.8.1

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_plugin_test.sh
      python: pypy3.5-7.0.0
      dist: xenial
      sudo: true
      env: PYTHON=pypy3

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      os: osx
      language: generic
      env:
        - PYTHON=py36
        - PY_VERSION=3.6.9

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      os: osx
      language: generic
      env:
        - PYTHON=py37
        - PY_VERSION=3.7.6

    - stage: test
      script:
        - ./.travis/run_tests.sh
        - ./.travis/run_pytest_fixture_test.sh
        - ./.travis/run_pytest_fixture_param_test.sh
        - ./.travis/run_pytest_plugin_test.sh
      os: osx
      language: generic
      env:
        - PYTHON=py38
        - PY_VERSION=3.8.1

    - stage: test
      script:
        - ./.travis/docker_tests.sh
      language: minimal
      env:
        - VM=Docker
        - DOCKERFILE=ubuntu

    - stage: test
      script:
        - ./.travis/docker_tests.sh
      language: minimal
      env:
        - VM=Docker
        - DOCKERFILE=centos

    - stage: test
      script:
        - ./.travis/docker_tests.sh
      language: minimal
      env:
        - VM=Docker
        - DOCKERFILE=fedora

    - stage: test
      script:
        - ./.travis/docker_tests.sh
      language: minimal
      env:
        - VM=Docker
        - DOCKERFILE=debian
