From 2e048706e9013fb808b5e302e3c540e34f1ea342 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 4 Apr 2024 13:52:38 -0700 Subject: [PATCH] fix comments on prs (#3406) * fix comments on prs * remove labels * remove test --- .github/workflows/pull-request-commit.yml | 172 +++------------------- 1 file changed, 18 insertions(+), 154 deletions(-) diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml index 24c0a791..796ebdf9 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, - });