71 lines
3.4 KiB
YAML
71 lines
3.4 KiB
YAML
name: Remind reviewers to also review the testing instructions and test coverage
|
|
on:
|
|
pull_request_target:
|
|
types: [review_requested]
|
|
|
|
permissions: {}
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
add-testing-instructions-review-comment:
|
|
runs-on: ubuntu-20.04
|
|
permissions:
|
|
pull-requests: write
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
|
|
|
|
- name: Install Octokit
|
|
run: npm --prefix .github/workflows/scripts install @octokit/action@~6.1.0
|
|
|
|
- name: Install Actions Core
|
|
run: npm --prefix .github/workflows/scripts install @actions/core@~1.10.1
|
|
|
|
- name: Check if user is a community contributor
|
|
id: is-community-contributor
|
|
run: node .github/workflows/scripts/is-community-contributor.js
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get the username of requested reviewers
|
|
if: steps.is-community-contributor.outputs.is-community == 'no'
|
|
id: get_reviewer_username
|
|
run: |
|
|
# Retrieves the username of all reviewers and stores them in a comma-separated list
|
|
reviewers=$(echo '${{ toJson(github.event.pull_request.requested_reviewers[*].login) }}' | jq -r 'map("@\(.)") | join(", ")')
|
|
echo "REVIEWERS=$reviewers" >> $GITHUB_ENV
|
|
|
|
- name: Get the name of requested teams
|
|
id: get_team_name
|
|
run: |
|
|
# Retrieves the name of all teams asked for review and stores them in a comma-separated list
|
|
teams=$(echo '${{ toJson(github.event.pull_request.requested_teams[*].slug) }}' | jq -r 'map("@woocommerce/\(.)") | join(", ")')
|
|
echo "TEAMS=$teams" >> $GITHUB_ENV
|
|
|
|
- name: Find the comment by github-actions[bot] asking for reviewing the testing instructions
|
|
uses: peter-evans/find-comment@034abe94d3191f9c89d870519735beae326f2bdb
|
|
id: find-comment
|
|
with:
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
comment-author: 'github-actions[bot]'
|
|
body-includes: please make sure to review the testing instructions
|
|
|
|
- name: Create or update PR comment asking for reviewers to review the testing instructions and test coverage
|
|
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d
|
|
with:
|
|
comment-id: ${{ steps.find-comment.outputs.comment-id }}
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
body: |
|
|
Hi ${{ env.REVIEWERS }}, ${{ env.TEAMS }}
|
|
|
|
Apart from reviewing the code changes, please make sure to review the testing instructions and verify that relevant tests (E2E, Unit, Integration, etc.) have been added or updated as needed.
|
|
|
|
You can follow this guide to find out what good testing instructions should look like:
|
|
https://github.com/woocommerce/woocommerce/wiki/Writing-high-quality-testing-instructions
|
|
edit-mode: replace
|