parent
3915bb4316
commit
2e048706e9
|
@ -19,6 +19,7 @@ jobs:
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
actions: write
|
||||||
steps:
|
steps:
|
||||||
- name: ⬇️ Checkout
|
- name: ⬇️ Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
@ -82,61 +83,22 @@ jobs:
|
||||||
pr_path: '../stats-new.json'
|
pr_path: '../stats-new.json'
|
||||||
excluded_assets: '(.+).chunk.js|(.+).js.map|(.+).json|(.+).png'
|
excluded_assets: '(.+).chunk.js|(.+).js.map|(.+).json|(.+).png'
|
||||||
|
|
||||||
- name: 🔍 Find old comment if it exists
|
- name: 💬 Drop a comment
|
||||||
uses: peter-evans/find-comment@v2
|
uses: marocchino/sticky-pull-request-comment@v2
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
id: old_comment
|
|
||||||
with:
|
with:
|
||||||
issue-number: ${{ github.event.pull_request.number }}
|
header: bundle-diff
|
||||||
comment-author: 'github-actions[bot]'
|
message: |
|
||||||
body-includes: <!-- webpack-analyzer comment -->
|
|
||||||
|
|
||||||
- name: 💬 Add comment with diff
|
|
||||||
uses: actions/github-script@v6
|
|
||||||
if: ${{ steps.old_comment.outputs.comment-id == '' }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const body = `<!-- webpack-analyzer comment -->
|
|
||||||
| Old size | New size | Diff |
|
| 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 }}%) |
|
| ${{ 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 = `<!-- webpack-analyzer comment -->
|
|
||||||
| 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:
|
test-suite-fingerprint:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }}
|
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 }}
|
concurrency: fingerprint-${{ github.event_name != 'pull_request' && 'main' || github.run_id }}
|
||||||
permissions:
|
permissions:
|
||||||
# REQUIRED: Allow comments of PRs
|
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
# REQUIRED: Allow updating fingerprint in acton caches
|
|
||||||
actions: write
|
actions: write
|
||||||
steps:
|
steps:
|
||||||
- name: ⬇️ Checkout
|
- name: ⬇️ Checkout
|
||||||
|
@ -172,126 +134,28 @@ jobs:
|
||||||
echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}"
|
echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}"
|
||||||
echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}"
|
echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}"
|
||||||
|
|
||||||
- name: 🏷️ Labeling PR
|
- name: 💬 Drop a comment
|
||||||
uses: actions/github-script@v6
|
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 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
|
|
||||||
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }}
|
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }}
|
||||||
with:
|
with:
|
||||||
script: |
|
header: fingerprint-diff
|
||||||
try {
|
message: |
|
||||||
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: <!-- pr-labeler comment -->
|
|
||||||
|
|
||||||
- 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 = `<!-- pr-labeler comment -->
|
|
||||||
The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
|
The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
|
||||||
<details><summary>Fingerprint diff</summary>
|
<details><summary>Fingerprint diff</summary>
|
||||||
|
|
||||||
\`\`\`json
|
```json
|
||||||
${diff}
|
${{ steps.fingerprint.outputs.fingerprint-diff }}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
|
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
|
||||||
`;
|
|
||||||
|
|
||||||
github.rest.issues.createComment({
|
- name: 💬 Delete comment
|
||||||
issue_number: context.issue.number,
|
uses: marocchino/sticky-pull-request-comment@v2
|
||||||
owner: context.repo.owner,
|
if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }}
|
||||||
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
|
|
||||||
with:
|
with:
|
||||||
script: |
|
header: fingerprint-diff
|
||||||
const diff = JSON.stringify(${{ steps.fingerprint.outputs.fingerprint-diff}}, null, 2);
|
delete: true
|
||||||
const body = `<!-- pr-labeler comment -->
|
|
||||||
The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }}
|
|
||||||
<details><summary>Fingerprint diff</summary>
|
|
||||||
|
|
||||||
\`\`\`json
|
|
||||||
${diff}
|
|
||||||
\`\`\`
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
---
|
|
||||||
*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,
|
|
||||||
});
|
|
||||||
|
|
Loading…
Reference in New Issue