Skip to content

feat(core): dedicated config processing #587

feat(core): dedicated config processing

feat(core): dedicated config processing #587

name: Changelog Requirement
on:
pull_request:
types: [ opened, synchronize, labeled, unlabeled ]
paths:
- 'kong/**'
- '**.rockspec'
- '.requirements'
- 'changelog/**'
jobs:
require-changelog:
if: ${{ !contains(github.event.*.labels.*.name, 'skip-changelog') }}
name: Requires changelog
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Find changelog files
id: changelog-list
uses: tj-actions/changed-files@95690f9ece77c1740f4a55b7f1de9023ed6b1f87 # v37
with:
files_yaml: |
changelogs:
- 'changelog/unreleased/**/*.yml'
upper_case:
- 'CHANGELOG/**'
numbered:
- 'changelog/unreleased/**/[0-9]+.yml'
- name: Check changelog existence
if: steps.changelog-list.outputs.changelogs_any_changed == 'false'
run: >
echo "Changelog file expected but found none. If you believe this PR requires no changelog entry, label it with \"skip-changelog\"."
echo "Refer to https://github.com/Kong/gateway-changelog for format guidelines."
exit 1
- name: Check correct case for changelog directory
if: steps.changelog-list.outputs.upper_case_any_changed == 'true'
run: |
echo "Please use \"changelog\" (all lowercase) for changelog modifications."
echo "Refer to https://github.com/Kong/gateway-changelog for format guidelines."
echo "Bad file(s): ${{ steps.changelog-list.outputs.upper_case_all_changed_files }}"
exit 1
- name: Check descriptive filename for changelog entry
if: steps.changelog-list.outputs.numbered_any_changed == 'true'
run: |
echo "Please use short descriptive name for changelog files instead of numbers."
echo "E.g. bump_openresty.yml instead of 12345.yml."
echo "Refer to https://github.com/Kong/gateway-changelog for format guidelines."
echo "Bad file(s): ${{ steps.changelog-list.outputs.numbered_all_changed_files }}"
exit 1
- name: Fail when deprecated YAML keys are used
run: >
for file in ${{ steps.changelog-list.outputs.changelogs_all_changed_files }}; do
if grep -q "prs:" $file || grep -q "jiras:" $file; then
echo "Please do not include \"prs\" or \"jiras\" keys in new changelogs, put the JIRA number inside commit message and PR description instead."
echo "Refer to https://github.com/Kong/gateway-changelog for format guidelines."
echo "Bad file: $file"
exit 1
fi
done