aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/news.yml31
1 files changed, 31 insertions, 0 deletions
diff --git a/.github/workflows/news.yml b/.github/workflows/news.yml
new file mode 100644
index 0000000000..c838c150fe
--- /dev/null
+++ b/.github/workflows/news.yml
@@ -0,0 +1,31 @@
+name: "news.txt check"
+on:
+ pull_request:
+ branches:
+ - 'master'
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: ${{ github.event.pull_request.commits }}
+ - name: news.txt needs to be updated
+ run: |
+ for commit in $(git rev-list HEAD); do
+ message=$(git log -n1 --pretty=format:%s $commit)
+ type="$(echo "$message" | sed -E 's|([[:alpha:]]+)(\(.*\))?!?:.*|\1|')"
+ breaking="$(echo "$message" | sed -E 's|[[:alpha:]]+(\(.*\))?!:.*|breaking-change|')"
+ if [[ "$type" == "feat" ]] || [[ "$breaking" == "breaking-change" ]]; then
+ git diff HEAD~$((${{ github.event.pull_request.commits }}-1)) --name-only | grep runtime/doc/news.txt ||
+ {
+ echo "
+ Pull request includes a new feature or a breaking change, but
+ news.txt hasn't been updated yet. news.txt is our primary way of
+ communicating changes to users so it's important to keep it up to
+ date."
+ exit 1
+ }
+ fi
+ done