Sync 112 #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This action requires that any PR targeting the main branch should add a | |
# yaml file to the ./.chloggen/ directory. If a CHANGELOG entry is not required, | |
# or if performing maintance on the Changelog, add either \"[chore]\" to the title of | |
# the pull request or add the \"Skip Changelog\" label to disable this action. | |
name: changelog | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, labeled, unlabeled] | |
branches: | |
- main | |
env: | |
# Make sure to exit early if cache segment download times out after 2 minutes. | |
# We limit cache download as a whole to 5 minutes. | |
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
jobs: | |
changelog: | |
runs-on: ubuntu-latest | |
if: ${{ github.actor != 'dependabot[bot]' }} | |
env: | |
PR_HEAD: ${{ github.event.pull_request.head.sha }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.22.8" | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: changelog-${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
- name: Ensure no changes to the CHANGELOG.md or CHANGELOG-API.md | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]')}} | |
run: | | |
if [[ $(git diff --name-only $(git merge-base origin/main $PR_HEAD) $PR_HEAD ./CHANGELOG*.md) ]] | |
then | |
echo "CHANGELOG.md and CHANGELOG-API.md should not be directly modified." | |
echo "Please add a .yaml file to the ./.chloggen/ directory." | |
echo "See CONTRIBUTING.md for more details." | |
echo "Alternately, add either \"[chore]\" to the title of the pull request or add the \"Skip Changelog\" label if this job should be skipped." | |
false | |
else | |
echo "CHANGELOG.md and CHANGELOG-API.md were not modified." | |
fi | |
- name: Ensure ./.chloggen/*.yaml addition(s) | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]')}} | |
run: | | |
if [[ 1 -gt $(git diff --diff-filter=A --name-only $(git merge-base origin/main $PR_HEAD) $PR_HEAD ./.chloggen | grep -c \\.yaml) ]] | |
then | |
echo "No changelog entry was added to the ./.chloggen/ directory." | |
echo "Please add a .yaml file to the ./.chloggen/ directory." | |
echo "See CONTRIBUTING.md for more details." | |
echo "Alternately, add either \"[chore]\" to the title of the pull request or add the \"Skip Changelog\" label if this job should be skipped." | |
false | |
else | |
echo "A changelog entry was added to the ./.chloggen/ directory." | |
fi | |
- name: Validate ./.chloggen/*.yaml changes | |
run: | | |
make chlog-validate \ | |
|| { echo "New ./.chloggen/*.yaml file failed validation."; exit 1; } | |
# In order to validate any links in the yaml file, render the config to markdown | |
- name: Render .chloggen changelog entries | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]')}} | |
run: make chlog-preview > changelog_preview.md | |
- name: Install markdown-link-check | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]')}} | |
run: npm install -g markdown-link-check | |
- name: Run markdown-link-check | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && !contains(github.event.pull_request.title, '[chore]')}} | |
run: | | |
markdown-link-check \ | |
--verbose \ | |
--config .github/workflows/check_links_config.json \ | |
changelog_preview.md \ | |
|| { echo "Check that anchor links are lowercase"; exit 1; } |