# 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: off  # yamllint disable-line rule:truthy
  require_ci_to_pass: true
  notify:
    wait_for_ci: false

coverage:
  precision: 2
  round: down
  range: "85...100"
  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
        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
        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
