From 509f15eab1436233368a2297c89efc1d5881c44a Mon Sep 17 00:00:00 2001 From: Tzu-ping Chung Date: Wed, 14 Aug 2024 09:45:21 +0800 Subject: [PATCH] Check breaking changes have a news fragment (#41443) --- .github/workflows/news-fragment.yml | 51 +++++++++++++++++++++++++++++ newsfragments/config.toml | 1 + 2 files changed, 52 insertions(+) create mode 100644 .github/workflows/news-fragment.yml diff --git a/.github/workflows/news-fragment.yml b/.github/workflows/news-fragment.yml new file mode 100644 index 000000000000..1e6d4279f50b --- /dev/null +++ b/.github/workflows/news-fragment.yml @@ -0,0 +1,51 @@ +# 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. +# +--- +name: CI + +on: # yamllint disable-line rule:truthy + pull_request: + types: [labeled, unlabeled, opened, reopened, synchronize] + +jobs: + check-news-fragment: + name: Check News Fragment + runs-on: ubuntu-20.04 + if: "contains(github.event.pull_request.labels.*.name, 'airflow3.0:breaking')" + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + # `towncrier check` runs `git diff --name-only origin/main...`, which + # needs a non-shallow clone. + fetch-depth: 0 + + - name: Check news fragment + run: > + pipx run towncrier check + --dir . + --config newsfragments/config.toml + --compare-with origin/${{ github.base_ref }} + || + printf "\033[1;33mMissing significant newsfragment for PR labeled with + 'airflow3.0:breaking'.\nCheck + https://github.com/apache/airflow/blob/main/contributing-docs/16_contribution_workflow.rst + for guidance.\033[m\n" + && + false diff --git a/newsfragments/config.toml b/newsfragments/config.toml index 4c0f7cc94985..4f78960972b7 100644 --- a/newsfragments/config.toml +++ b/newsfragments/config.toml @@ -18,6 +18,7 @@ name = "Airflow" filename = "RELEASE_NOTES.rst" underlines = ["-", '^'] +ignore = ["config.toml"] [[tool.towncrier.type]] directory = "significant"