# 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.
---
codecov:
  branch: main
  max_report_age: 6h
  require_ci_to_pass: true
  notify:
    wait_for_ci: false
    after_n_builds: 10

coverage:
  precision: 1
  round: down
  range: 65..90
  status:
    project:
      default:
        # basic
        target: auto
        threshold: 0%
        base: auto
        paths:
          - "airflow"
        # advanced
        branches:
          - main
          - v2-0-stable
          - v2-0-test
          - v2-1-stable
          - v2-1-test
          - v2-2-stable
          - v2-2-test
          - v2-3-stable
          - v2-3-test
          - v2-4-stable
          - v2-4-test
          - v2-5-stable
          - v2-5-test
          - v2-6-stable
          - v2-6-test
          - v2-7-stable
          - v2-7-test
          - v2-8-stable
          - v2-8-test
          - v2-9-stable
          - v2-9-test
        if_not_found: success
        if_ci_failed: error
        informational: true
        only_pulls: false
    patch:
      default:
        # basic
        target: auto
        threshold: 0%
        base: auto
        # advanced
        branches:
          - main
          - v2-0-stable
          - v2-0-test
          - v2-1-stable
          - v2-1-test
          - v2-2-stable
          - v2-2-test
          - v2-3-stable
          - v2-3-test
          - v2-4-stable
          - v2-4-test
          - v2-5-stable
          - v2-5-test
          - v2-6-stable
          - v2-6-test
          - v2-7-stable
          - v2-7-test
          - v2-8-stable
          - v2-8-test
          - v2-9-stable
          - v2-9-test
        if_no_uploads: error
        if_not_found: success
        if_ci_failed: error
        only_pulls: false
        paths:
          - "airflow"

ignore:
  - "airflow/_vendor"
  - "airflow/providers/google/ads/_vendor"
  - "airflow/contrib"
  - "airflow/example_dags"
  - "airflow/migrations"
  - "airflow/providers/**/example_dags"
  - "airflow/www/node_modules"

comment: false
