# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#
---
dist: bionic
language: python
os: linux
env:
  global:
    - BUILD_ID=${TRAVIS_BUILD_ID}
    - MOUNT_LOCAL_SOURCES="false"
    - MOUNT_HOST_AIRFLOW_VOLUME="true"
    - FORCE_ANSWER_TO_QUESTIONS="yes"
    - SKIP_CHECK_REMOTE_IMAGE="true"
    - VERBOSE="true"
    - CI="true"
python: "3.6"
stages:
  - pre-test
  - test
services:
  - docker
jobs:
  include:
    - name: "Static checks"
      stage: pre-test
      script: ./scripts/ci/ci_run_all_static_checks.sh
      env: >-
        PYTHON_VERSION=3.6
        AIRFLOW_MOUNT_SOURCE_DIR_FOR_STATIC_CHECKS="true"
        SKIP=pylint-tests
    - name: "Static checks - pylint tests only"
      stage: pre-test
      script: ./scripts/ci/ci_run_static_checks_pylint_tests.sh
      env: >-
        PYTHON_VERSION=3.6
        AIRFLOW_MOUNT_SOURCE_DIR_FOR_STATIC_CHECKS="true"
    - name: "Build documentation"
      env: >-
        PYTHON_VERSION=3.6
      stage: test
      script: ./scripts/ci/ci_docs.sh
    - name: "Tests [Py3.6][Kubernetes][persistent]"
      env: >-
        BACKEND=postgres
        PYTHON_VERSION=3.6
        RUNTIME=kubernetes
        ENABLE_KIND_CLUSTER=true
        KUBERNETES_MODE=persistent_mode
        KUBERNETES_VERSION=v1.15.3
      python: "3.6"
      stage: test
    - name: "Tests [Py3.7][Kubernetes][git]"
      env: >-
        BACKEND=postgres
        PYTHON_VERSION=3.7
        RUNTIME=kubernetes
        ENABLE_KIND_CLUSTER=true
        KUBERNETES_MODE=git_mode
        KUBERNETES_VERSION=v1.15.3
      python: "3.6"
      stage: test
    - name: "Tests [Postgres9.6][Py3.6][integrations]"
      env: >-
        BACKEND=postgres
        PYTHON_VERSION=3.6
        POSTGRES_VERSION=9.6
        ENABLED_INTEGRATIONS="cassandra kerberos mongo openldap rabbitmq redis"
        RUN_INTEGRATION_TESTS=all
      stage: test
    - name: "Tests [Postgres10][Py3.6][providers]"
      env: >-
        BACKEND=postgres
        POSTGRES_VERSION=10
        PYTHON_VERSION=3.6
      script: "./scripts/ci/ci_run_airflow_testing.sh tests/providers"
      stage: test
    - name: "Tests [Postgres9.6][Py3.6][core]"
      env: >-
        BACKEND=postgres
        POSTGRES_VERSION=9.6
        PYTHON_VERSION=3.6
      script: "./scripts/ci/ci_run_airflow_testing.sh --ignore=tests/providers"
      stage: test
    - name: "Tests [Sqlite][Py3.7][integrations]"
      env: >-
        BACKEND=sqlite
        PYTHON_VERSION=3.7
        ENABLED_INTEGRATIONS="cassandra kerberos mongo openldap rabbitmq redis"
        RUN_INTEGRATION_TESTS=all
      stage: test
    - name: "Tests [Sqlite][Py3.6]"
      env: >-
        BACKEND=sqlite
        PYTHON_VERSION=3.6
      stage: test
    - name: "Tests [MySQL5.7][Py3.6][integrations]"
      env: >-
        BACKEND=mysql
        PYTHON_VERSION=3.6
        MYSQL_VERSION=5.7
        ENABLED_INTEGRATIONS="cassandra kerberos mongo openldap rabbitmq redis"
        RUN_INTEGRATION_TESTS=all
      stage: test
    - name: "Tests [MySQL5.7][3.7][providers][kerberos]"
      env: >-
        BACKEND=mysql
        PYTHON_VERSION=3.7
        MYSQL_VERSION=5.7
        ENABLED_INTEGRATIONS="kerberos"
      script: "./scripts/ci/ci_run_airflow_testing.sh tests/providers"
      stage: test
    - name: "Tests [MySQL5.7][Py3.7][core][kerberos]"
      env: >-
        BACKEND=mysql
        PYTHON_VERSION=3.7
        MYSQL_VERSION=5.7
        ENABLED_INTEGRATIONS="kerberos"
      script: "./scripts/ci/ci_run_airflow_testing.sh --ignore=tests/providers"
      stage: test
    - name: "Prepare backport packages"
      before_install: pip install bowler
      stage: test
      script: ./scripts/ci/ci_prepare_backport_packages.sh
before_install:
  - ./scripts/ci/ci_before_install.sh
script: ./scripts/ci/ci_run_airflow_testing.sh