Publish benchmarks comment to PR #57
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
# This workflow publishes a benchmarks comment on a pull request. It is triggered after the | |
# benchmarks are computed in the asv-pr workflow. This separation of concerns allows us limit | |
# access to the target repository private tokens and secrets, increasing the level of security. | |
# Based on https://securitylab.github.com/research/github-actions-preventing-pwn-requests/. | |
name: Publish benchmarks comment to PR | |
on: | |
workflow_run: | |
workflows: ["Run benchmarks for PR"] | |
types: [completed] | |
jobs: | |
upload-pr-comment: | |
runs-on: ubuntu-latest | |
if: > | |
github.event.workflow_run.event == 'pull_request' && | |
github.event.workflow_run.conclusion == 'success' | |
permissions: | |
issues: write | |
pull-requests: write | |
steps: | |
- name: Display Workflow Run Information | |
run: | | |
echo "Workflow Run ID: ${{ github.event.workflow_run.id }}" | |
echo "Head SHA: ${{ github.event.workflow_run.head_sha }}" | |
echo "Head Branch: ${{ github.event.workflow_run.head_branch }}" | |
echo "Conclusion: ${{ github.event.workflow_run.conclusion }}" | |
echo "Event: ${{ github.event.workflow_run.event }}" | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v3 | |
with: | |
name: benchmark-artifacts | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Extract artifacts information | |
id: pr-info | |
run: | | |
printf "PR number: $(cat pr)\n" | |
printf "Output:\n$(cat output)" | |
printf "pr=$(cat pr)" >> $GITHUB_OUTPUT | |
- name: Find benchmarks comment | |
uses: peter-evans/find-comment@v3 | |
id: find-comment | |
with: | |
issue-number: ${{ steps.pr-info.outputs.pr }} | |
comment-author: 'github-actions[bot]' | |
body-includes: view all benchmarks | |
- name: Create or update benchmarks comment | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ steps.find-comment.outputs.comment-id }} | |
issue-number: ${{ steps.pr-info.outputs.pr }} | |
body-path: output | |
edit-mode: replace |