Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflows: try a backport changelog #61785

Merged
merged 23 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/check-backport-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Verify Core Backport Changlog

on:
pull_request:
types: [opened, synchronize]
paths:
- 'lib/**'
- '!lib/experimental/**'
- 'packages/**/*.php'
- 'phpunit/**'
jobs:
check:
name: Check CHANGELOG diff
runs-on: ubuntu-latest
steps:
- name: 'Get PR commit count'
run: echo "PR_COMMIT_COUNT=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> "${GITHUB_ENV}"
- name: Checkout code
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: ${{ env.PR_COMMIT_COUNT }}
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: 'Fetch relevant history from origin'
run: git fetch origin ${{ github.event.pull_request.base.ref }}
- name: Check CHANGELOG status
env:
PR_NUMBER: ${{ github.event.number }}
run: |
changelog_folder="backport-changelog"

# Fail if the PR doesn't touch the changelog
if git diff --quiet ${{ github.event.pull_request.base.sha }} HEAD -- "$changelog_folder"; then
echo "Please create a core backport PR and add a file with the name <core-pr-number>.md in the $changelog_folder folder with the core backport PR URL and a list item with this PR URL."
echo "If changes are related to an existing, open core PR, you may add this PR URL to the core PR's file."
exit 1
fi

# Find any changelog file that contains the Gutenberg PR link
gutenberg_pr_url="https://github\.com/WordPress/gutenberg/pull/${PR_NUMBER}"
changelog_file=$(grep -rl "[-*] ${gutenberg_pr_url}" "${changelog_folder}" | head -n 1)

# Confirm that there is an entry containing the Gutenberg PR link
if [[ -z "${changelog_file}" ]]; then
echo "Please create a core backport PR and add a file with the name <core-pr-number>.md in the $changelog_folder folder with the core backport PR URL and a list item with this PR URL."
priethor marked this conversation as resolved.
Show resolved Hide resolved
echo "If changes are related to an existing, open core PR, you may add this PR URL to the core PR's file."
ellatrix marked this conversation as resolved.
Show resolved Hide resolved
exit 1
fi

core_pr_number=$(basename "${changelog_file}" .md)
core_pr_url="https://github\.com/WordPress/wordpress-develop/pull/${core_pr_number}"

# Confirm that the entry has the correct core backport PR URL.
if ! grep -q -e "${core_pr_url}" "${changelog_file}"; then
echo "Please update the content of ${changelog_file} to include the core backport PR URL, or update the file name to match the core backport PR number."
exit 1
fi
4 changes: 4 additions & 0 deletions backport-changelog/<core-pr-number>.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
https://github.com/WordPress/wordpress-develop/pull/{core-pr-number}

* https://github.com/WordPress/gutenberg/pull/{first-gb-pr-number}
* https://github.com/WordPress/gutenberg/pull/{second-gb-pr-number}
3 changes: 3 additions & 0 deletions backport-changelog/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Core Backport Changelog

Any PR that makes changes to be backported to core should log a core PR here. It's possible to have multiple Gutenberg PRs link to a single core backport PR. The core backport PR can remain open as long as wanted/needed. The entries are sorted by core release, and each entry should be an md file with the Gutenberg PR number as the file name, and the link to the core backport PR as file content. Files are used to avoid rebase conflicts.
ellatrix marked this conversation as resolved.
Show resolved Hide resolved
Loading