diff --git a/.github/workflows/benchmarks_comment.yml b/.github/workflows/benchmarks_comment.yml
index 6f52d29..18f89f7 100644
--- a/.github/workflows/benchmarks_comment.yml
+++ b/.github/workflows/benchmarks_comment.yml
@@ -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
@@ -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
@@ -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\nMain
\n\n\`\`\`\n${results_main}\n\`\`\`\n \nPR
\n\n\`\`\`\n${results_pr}\n\`\`\`\n `;
+ const body = `Benchmark Results - Solvers\n\nTarget Branch - ${base_sha}
\n\n\`\`\`\n${results_main}\n\`\`\`\n \nPR - ${head_sha}
\n\n\`\`\`\n${results_pr}\n\`\`\`\n `;
if (comment_id) {
github.rest.issues.updateComment({
owner: context.repo.owner,
diff --git a/.github/workflows/benchmarks_run.yml b/.github/workflows/benchmarks_run.yml
index 2158fa6..bff5351 100644
--- a/.github/workflows/benchmarks_run.yml
+++ b/.github/workflows/benchmarks_run.yml
@@ -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