Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 0 additions & 80 deletions .github/workflows/benchmarks-last-release.yml

This file was deleted.

77 changes: 0 additions & 77 deletions .github/workflows/benchmarks.yml

This file was deleted.

83 changes: 83 additions & 0 deletions .github/workflows/benchmarks_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Post any reports generated by benchmarks_run.yml .
# Separated for security:
# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/

name: benchmarks-report
run-name: Report benchmark results

on:
workflow_run:
workflows: [benchmarks-run]
types:
- completed

jobs:
download:
runs-on: ubuntu-latest
outputs:
reports_exist: ${{ steps.unzip.outputs.reports_exist }}
steps:
- name: Download artifact
id: download-artifact
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
uses: actions/github-script@v8
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "benchmark_reports"
})[0];
if (typeof matchArtifact != 'undefined') {
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/benchmark_reports.zip`, Buffer.from(download.data));
};

- name: Unzip artifact
id: unzip
run: |
if test -f "benchmark_reports.zip"; then
reports_exist=1
unzip benchmark_reports.zip -d benchmark_reports
else
reports_exist=0
fi
echo "reports_exist=$reports_exist" >> "$GITHUB_OUTPUT"

- name: Store artifact
uses: actions/upload-artifact@v4
with:
name: benchmark_reports
path: benchmark_reports

post_reports:
runs-on: ubuntu-latest
needs: download
if: needs.download.outputs.reports_exist == 1
steps:
- name: Checkout repo
uses: actions/checkout@v5

- name: Download artifact
uses: actions/download-artifact@v5
with:
name: benchmark_reports
path: .github/workflows/benchmark_reports

- name: Set up Python
# benchmarks/bm_runner.py only needs builtins to run.
uses: actions/setup-python@v6

- name: Post reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: benchmarks/bm_runner.py _gh_post
Loading
Loading