Skip to content

Commit

Permalink
Benchmark: Properly retain benchmark results for comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
dwmunster committed Jun 4, 2024
1 parent 19c5da9 commit c4947af
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 21 deletions.
23 changes: 13 additions & 10 deletions .github/workflows/benchmarks_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ jobs:
comment:
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
env:
BENCHMARK_RESULTS: benchmark_results
PR_EVENT: event.json
steps:
- name: Download Benchmark Results
uses: actions/github-script@v7
Expand All @@ -40,19 +37,23 @@ jobs:
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/${artifactName}.zip`, Buffer.from(download.data));
}
await downloadArtifact(process.env.BENCHMARK_RESULTS);
await downloadArtifact(process.env.PR_EVENT);
await downloadArtifact("benchmark_results_target");
await downloadArtifact("benchmark_results_pr");
await downloadArtifact("event.json");
- name: Unzip Benchmark Results
run: |
unzip $BENCHMARK_RESULTS.zip
unzip $PR_EVENT.zip
unzip benchmark_results_target.zip
unzip benchmark_results_pr.zip
unzip event.json.zip
- name: Export PR Event Data
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: |
let fs = require('fs');
let prEvent = JSON.parse(fs.readFileSync(process.env.PR_EVENT, {encoding: 'utf8'}));
core.exportVariable("PR_NUMBER", prEvent.number);
core.exportVariable("HEAD_SHA", prEvent.pull_request.head.sha);
core.exportVariable("BASE_SHA", prEvent.pull_request.base.sha);
- name: Find Comment
uses: peter-evans/find-comment@v3
Expand All @@ -68,15 +69,17 @@ jobs:
const fs = require('fs');
const issue_number = ${{ env.PR_NUMBER }};
const comment_id = '${{ steps.fc.outputs.comment-id }}';
const head_sha = ${{ env.HEAD_SHA }};
const base_sha = ${{ env.BASE_SHA }};
let results_main = 'Benchmarks did not run successfully on main.';
let results_pr = 'Benchmarks did not run successfully on PR.';
if (fs.existsSync('results_main.txt')) {
results_main = fs.readFileSync('results_main.txt', 'utf8');
results_main = fs.readFileSync('results_target.txt', 'utf8');
}
if (fs.existsSync('results_pr.txt')) {
results_pr = fs.readFileSync('results_pr.txt', 'utf8');
}
const body = `Benchmark Results - Solvers\n\n<details><summary>Main</summary>\n\n\`\`\`\n${results_main}\n\`\`\`\n</details>\n<details><summary>PR</summary>\n\n\`\`\`\n${results_pr}\n\`\`\`\n</details>`;
const body = `Benchmark Results - Solvers\n\n<details><summary>Target Branch - ${base_sha}</summary>\n\n\`\`\`\n${results_main}\n\`\`\`\n</details>\n<details><summary>PR - ${head_sha}</summary>\n\n\`\`\`\n${results_pr}\n\`\`\`\n</details>`;
if (comment_id) {
github.rest.issues.updateComment({
owner: context.repo.owner,
Expand Down
27 changes: 16 additions & 11 deletions .github/workflows/benchmarks_run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,34 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Checkout main branch
uses: actions/checkout@v2
- name: Checkout target branch
uses: actions/checkout@v4
with:
ref: main
ref: github.base_ref
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2

- name: Run benchmarks on main - solvers
run: cargo bench -- solvers --exact | tail -n +6 > results_main.txt
- name: Run benchmarks on target - solvers
run: cargo bench -- solvers --exact | tail -n +6 > results_target.txt

- name: Upload Benchmark Results
uses: actions/upload-artifact@v4
with:
name: benchmark_results_target
path: ./results_target.txt
if-no-files-found: error

- name: Checkout PR branch
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Run benchmarks on PR branch
- name: Run benchmarks on PR - solvers
run: cargo bench -- solvers --exact | tail -n +6 > results_pr.txt

- name: Upload Benchmark Results
uses: actions/upload-artifact@v4
with:
name: benchmark_results
path: |
./results_main.txt
./results_pr.txt
name: benchmark_results_pr
path: ./results_pr.txt
if-no-files-found: error

- name: Upload GitHub Pull Request Event
Expand Down

0 comments on commit c4947af

Please sign in to comment.