-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from Yoast/JRF/add-reusable-merge-conflict-chec…
…k-workflow QA: add reusable merge conflict check workflow
- Loading branch information
Showing
2 changed files
with
81 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: Check PRs for merge conflicts | ||
|
||
on: | ||
# Check for new conflicts due to merges. | ||
push: | ||
branches: | ||
- main | ||
# Check conflicts in new PRs and for resolved conflicts due to an open PR being updated. | ||
pull_request_target: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
|
||
jobs: | ||
check-prs: | ||
if: github.repository_owner == 'Yoast' | ||
|
||
name: Check PRs for merge conflicts | ||
uses: ./.github/workflows/reusable-merge-conflict-check.yml |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: Check PRs for merge conflicts | ||
|
||
on: | ||
workflow_call: | ||
# Note: the following inputs from the eps1lon/actions-label-merge-conflict | ||
# action runner are not made available as inputs for end-user workflows at this time. | ||
# - repoToken: set to secrets.GITHUB_TOKEN, which should be fine in all cases (except forks). | ||
# - retryAfter: defaults to 120 seconds. | ||
# - retryMax: defaults to 5 times | ||
# - continueOnMissingPermissions: defaults to false | ||
# | ||
# If at some point in the future, there would be a need, these can still be added. | ||
inputs: | ||
dirtyLabel: | ||
description: "Name of the label which indicates that the branch is dirty." | ||
type: string | ||
required: false | ||
default: "merge conflict" | ||
removeOnDirtyLabel: | ||
description: "Name of the label which should be removed." | ||
type: string | ||
required: false | ||
default: '' | ||
commentOnDirty: | ||
description: "Comment to add when the pull request is conflicting. Supports markdown." | ||
type: string | ||
required: false | ||
default: "A merge conflict has been detected for the proposed code changes in this PR. Please resolve the conflict by either rebasing the PR or merging in changes from the base branch." | ||
commentOnClean: | ||
description: "Comment to add when the pull request is not conflicting anymore. Supports markdown." | ||
type: string | ||
required: false | ||
default: '' | ||
|
||
jobs: | ||
check-prs: | ||
name: Merge conflict check | ||
|
||
runs-on: ubuntu-latest | ||
steps: | ||
- name: "Create label if it doesn't exist" | ||
uses: actions/github-script@v7 | ||
with: | ||
script: | | ||
try { | ||
await github.rest.issues.createLabel({ | ||
...context.repo, | ||
name: ${{ inputs.dirtyLabel }} | ||
}); | ||
} catch(e) { | ||
// Ignore if labels exist already. | ||
} | ||
- name: Check PRs for merge conflicts | ||
uses: eps1lon/actions-label-merge-conflict@v3 | ||
with: | ||
repoToken: ${{ secrets.GITHUB_TOKEN }} | ||
dirtyLabel: ${{ inputs.dirtyLabel }} | ||
removeOnDirtyLabel: ${{ inputs.removeOnDirtyLabel }} | ||
commentOnDirty: ${{ inputs.commentOnDirty }} | ||
commentOnClean: ${{ inputs.commentOnClean }} |