diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml
index 24c0a79190..796ebdf9bd 100644
--- a/.github/workflows/pull-request-commit.yml
+++ b/.github/workflows/pull-request-commit.yml
@@ -19,6 +19,7 @@ jobs:
if: ${{ github.event_name == 'pull_request' }}
permissions:
pull-requests: write
+ actions: write
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v4
@@ -82,61 +83,22 @@ jobs:
pr_path: '../stats-new.json'
excluded_assets: '(.+).chunk.js|(.+).js.map|(.+).json|(.+).png'
- - name: 🔍 Find old comment if it exists
- uses: peter-evans/find-comment@v2
- if: ${{ github.event_name == 'pull_request' }}
- id: old_comment
+ - name: 💬 Drop a comment
+ uses: marocchino/sticky-pull-request-comment@v2
with:
- issue-number: ${{ github.event.pull_request.number }}
- comment-author: 'github-actions[bot]'
- body-includes:
-
- - name: 💬 Add comment with diff
- uses: actions/github-script@v6
- if: ${{ steps.old_comment.outputs.comment-id == '' }}
- with:
- script: |
- const body = `
+ header: bundle-diff
+ message: |
| Old size | New size | Diff |
|----------|----------|-----------------------|
| ${{ steps.get-diff.outputs.base_file_string }} | ${{ steps.get-diff.outputs.pr_file_string }} | ${{ steps.get-diff.outputs.diff_file_string }} (${{ steps.get-diff.outputs.percent }}%) |
- `;
-
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: body,
- });
-
- - name: 💬 Update comment with fingerprint
- if: ${{ steps.old_comment.outputs.comment-id != '' }}
- uses: actions/github-script@v6
- with:
- script: |
- const body = `
- | Old size | New size | Diff |
- |----------|----------|-----------------------|
- | ${{ steps.get-diff.outputs.base_file_string }} | ${{ steps.get-diff.outputs.pr_file_string }} | ${{ steps.get-diff.outputs.diff_file_string }} (${{ steps.get-diff.outputs.percent }}%) |
- `;
-
- github.rest.issues.updateComment({
- issue_number: context.issue.number,
- comment_id: '${{ steps.old_comment.outputs.comment-id }}',
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: body,
- });
+ ---
test-suite-fingerprint:
runs-on: ubuntu-22.04
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }}
- # REQUIRED: limit concurrency when pushing main(default) branch to prevent conflict for this action to update its fingerprint database
concurrency: fingerprint-${{ github.event_name != 'pull_request' && 'main' || github.run_id }}
permissions:
- # REQUIRED: Allow comments of PRs
pull-requests: write
- # REQUIRED: Allow updating fingerprint in acton caches
actions: write
steps:
- name: ⬇️ Checkout
@@ -172,126 +134,28 @@ jobs:
echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}"
echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}"
- - name: 🏷️ Labeling PR
- uses: actions/github-script@v6
- if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }}
- with:
- script: |
- try {
- await github.rest.issues.removeLabel({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- name: ['bot: fingerprint changed']
- })
- } catch (e) {
- if (e.status != 404) {
- throw e;
- }
- }
- github.rest.issues.addLabels({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- labels: ['bot: fingerprint compatible']
- })
-
- - name: 🏷️ Labeling PR
- uses: actions/github-script@v6
+ - name: 💬 Drop a comment
+ uses: marocchino/sticky-pull-request-comment@v2
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }}
with:
- script: |
- try {
- await github.rest.issues.removeLabel({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- name: ['bot: fingerprint compatible']
- })
- } catch (e) {
- if (e.status != 404) {
- throw e;
- }
- }
- github.rest.issues.addLabels({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- labels: ['bot: fingerprint changed']
- })
-
- - name: 🔍 Find old comment if it exists
- uses: peter-evans/find-comment@v2
- if: ${{ github.event_name == 'pull_request' }}
- id: old_comment
- with:
- issue-number: ${{ github.event.pull_request.number }}
- comment-author: 'github-actions[bot]'
- body-includes:
-
- - name: 💬 Add comment with fingerprint
- if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' && steps.old_comment.outputs.comment-id == '' }}
- uses: actions/github-script@v6
- with:
- script: |
- const diff = JSON.stringify(${{ steps.fingerprint.outputs.fingerprint-diff}}, null, 2);
- const body = `
+ header: fingerprint-diff
+ message: |
The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
Fingerprint diff
- \`\`\`json
- ${diff}
- \`\`\`
+ ```json
+ ${{ steps.fingerprint.outputs.fingerprint-diff }}
+ ```
---
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
- `;
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: body,
- });
-
- - name: 💬 Update comment with fingerprint
- if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' && steps.old_comment.outputs.comment-id != '' }}
- uses: actions/github-script@v6
+ - name: 💬 Delete comment
+ uses: marocchino/sticky-pull-request-comment@v2
+ if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }}
with:
- script: |
- const diff = JSON.stringify(${{ steps.fingerprint.outputs.fingerprint-diff}}, null, 2);
- const body = `
- The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
- Fingerprint diff
+ header: fingerprint-diff
+ delete: true
- \`\`\`json
- ${diff}
- \`\`\`
-
-
-
- ---
- *Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
- `;
-
- github.rest.issues.updateComment({
- issue_number: context.issue.number,
- comment_id: '${{ steps.old_comment.outputs.comment-id }}',
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: body,
- });
-
- - name: 💬 Delete comment with fingerprint
- if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' && steps.old_comment.outputs.comment-id != '' }}
- uses: actions/github-script@v6
- with:
- script: |
- github.rest.issues.deleteComment({
- issue_number: context.issue.number,
- comment_id: '${{ steps.old_comment.outputs.comment-id }}',
- owner: context.repo.owner,
- repo: context.repo.repo,
- });