# 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: xenial
language: python
env:
  global:
    - BUILD_ID=${TRAVIS_BUILD_ID}
    - AIRFLOW_CONTAINER_MOUNT_HOST_VOLUMES="false"
    - AIRFLOW_CI_SILENT="true"
    - CI="true"
python: "3.6"
stages:
  - pre-test
  - test
jobs:
  include:
    - name: "Tests postgres python 3.6"
      env: BACKEND=postgres ENV=docker
      python: "3.6"
      stage: test
    - name: "Tests sqlite python 3.5"
      env: BACKEND=sqlite ENV=docker
      python: "3.5"
      stage: test
    - name: "Tests mysql python 2.7"
      env: BACKEND=mysql ENV=docker
      python: "2.7"
      stage: test
    - name: "Tests postgres kubernetes python 3.6 (persistent)"
      env: BACKEND=postgres ENV=kubernetes KUBERNETES_VERSION=v1.13.0 KUBERNETES_MODE=persistent_mode
      python: "3.6"
      stage: test
    - name: "Tests postgres kubernetes python 3.6 (git)"
      env: BACKEND=postgres ENV=kubernetes KUBERNETES_VERSION=v1.13.0 KUBERNETES_MODE=git_mode
      python: "3.6"
      stage: test
    - name: "Tests postgres kubernetes python 2.7 (persistent)"
      env: BACKEND=postgres ENV=kubernetes KUBERNETES_VERSION=v1.13.0 KUBERNETES_MODE=persistent_mode
      python: "2.7"
      stage: test
    - name: "Tests postgres kubernetes python 2.7 (git)"
      env: BACKEND=postgres ENV=kubernetes KUBERNETES_VERSION=v1.9.0 KUBERNETES_MODE=git_mode
      python: "2.7"
      stage: test
    - name: "Static checks (no licence check)"
      stage: pre-test
      script: ./scripts/ci/ci_run_all_static_tests_except_licence.sh
    - name: "Check licence compliance for Apache"
      stage: pre-test
      script: ./scripts/ci/ci_check_license.sh
    - name: "Build documentation"
      stage: pre-test
      script: ./scripts/ci/ci_docs.sh
services:
  - docker
before_install:
  - ./scripts/ci/ci_before_install.sh
script: "./scripts/ci/ci_run_airflow_testing.sh"
