New feature that needs preview #6
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
name: Check mergeability | |
on: pull_request | |
permissions: | |
pull-requests: write | |
checks: write | |
statuses: write | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if there is already a block on this PR | |
id: blocked | |
uses: actions/github-script@v6 | |
env: | |
issue_number: ${{ github.event.number }} | |
with: | |
script: | | |
const { data: reviews } = await github.rest.pulls.listReviews({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: process.env.issue_number, | |
}); | |
for (const review of reviews) { | |
if (review.user.login === 'github-actions[bot]' && review.state === 'CHANGES_REQUESTED') { | |
return 'true' | |
} | |
} | |
return 'false' | |
result-encoding: string | |
- uses: actions/checkout@v3 | |
if: steps.blocked.outputs.result != 'true' | |
with: | |
fetch-depth: 0 | |
- name: Get changed files in the .changeset folder | |
id: changed-files | |
uses: tj-actions/changed-files@v35 | |
if: steps.blocked.outputs.result != 'true' | |
with: | |
files: | | |
.changeset/**/*.md | |
- name: Check if any changesets contain minor changes | |
id: minor | |
if: steps.blocked.outputs.result != 'true' | |
run: | | |
echo "Checking for changesets marked as minor" | |
echo '::set-output name=found::false' | |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do | |
if grep -q "'astro': minor" "$file"; then | |
echo '::set-output name=found::true' | |
echo "$file has a minor release tag" | |
fi | |
done | |
- name: Add label | |
uses: actions/github-script@v6 | |
if: steps.minor.outputs.found == 'true' | |
env: | |
issue_number: ${{ github.event.number }} | |
with: | |
script: | | |
github.rest.issues.addLabels({ | |
issue_number: process.env.issue_number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ['semver: minor'] | |
}); | |
- name: Change PR Status | |
uses: actions/github-script@v6 | |
if: steps.minor.outputs.found == 'true' | |
env: | |
issue_number: ${{ github.event.number }} | |
with: | |
script: | | |
github.rest.pulls.createReview({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: process.env.issue_number, | |
event: 'REQUEST_CHANGES', | |
body: 'This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved.' | |
}); |