Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
d0541f8
Trigger benchmark workflow
Apr 22, 2025
e3628c9
Enhanced benchmarking workflow
Apr 22, 2025
2d5f94f
Trigger benchmark workflow
Apr 22, 2025
34bf941
Update artifact upload to v4 in benchmarks workflow
Apr 22, 2025
1511204
Fix Bazel setup in benchmark workflow
Apr 22, 2025
7aed1d1
Fix Bazel installation in benchmarking workflow
Apr 22, 2025
102e344
Fix Bazel version parameter in workflow
Apr 22, 2025
fdf2fe8
Update Bazelisk to v2 with compatible version
Apr 22, 2025
ce073e4
Update Bazelisk to v1.19.0 for cache compatibility
Apr 22, 2025
8195fde
Add benchmarking workflow
Apr 23, 2025
0299d19
Add enhanced benchmark workflow and documentation
Apr 23, 2025
d6e1420
Add enhanced benchmark workflow and documentation
Apr 23, 2025
aac4231
Add enhanced benchmark workflow and documentation
Apr 23, 2025
23bc1d4
Add enhanced benchmark workflow and documentation
Apr 23, 2025
7e372ee
Add enhanced benchmark workflow and documentation
Apr 23, 2025
2b9a01c
Add enhanced benchmark workflow and documentation
Apr 23, 2025
4a7de03
Fix benchmark workflow by switching to bazel-contrib/setup-bazel
Apr 23, 2025
d7343be
Update workflow trigger to include benchmark-test branch
Apr 23, 2025
3be5d9e
Verification commit
Apr 23, 2025
c97fdbc
Fix Bazel setup and Python syntax errors in benchmark workflow
Apr 23, 2025
efdde29
Force workflow refresh
Apr 23, 2025
e873591
Final workflow verification
Apr 23, 2025
8c8973c
Final workflow verification
Apr 23, 2025
2dd096d
Final cache resolution
Apr 23, 2025
f7536aa
Final cache configuration verification
Apr 23, 2025
3c52ec8
ci: Add per-commit benchmarking automation with visualization
feliciien Apr 23, 2025
aaec9f4
WIP: Temporary commit
feliciien Apr 23, 2025
5ef4fab
feat: Complete benchmarking automation with Vale fixes
feliciien Apr 23, 2025
b2a3461
ci: Externalize benchmark configuration
feliciien Apr 23, 2025
8905db2
fix: Correct Vale configuration paths
feliciien Apr 23, 2025
e891ed0
fix(bazel): Export .rustfmt.toml in root BUILD
feliciien Apr 23, 2025
1996113
fix(bazel): Export .rustfmt.toml in root BUILD
feliciien Apr 23, 2025
138461b
feat: Add performance benchmarking system
feliciien Apr 23, 2025
2865c63
feat(benchmark): add benchmarking scripts for NativeLink
feliciien Apr 23, 2025
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
77 changes: 77 additions & 0 deletions .github/workflows/benchmark.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: NativeLink Benchmarks

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pymongo matplotlib pandas requests

- name: Get previous commit
id: get-prev-commit
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "prev_commit=${{ github.event.pull_request.base.sha }}" >> $GITHUB_OUTPUT
else
echo "prev_commit=$(git rev-parse HEAD~1)" >> $GITHUB_OUTPUT
fi

- name: Run Benchmarks
run: |
python benchmark/run_benchmarks.py \
--commit=${{ github.sha }} \
--compare-to=${{ steps.get-prev-commit.outputs.prev_commit }} \
--output-dir=./benchmark_results

- name: Upload results to database
run: |
python benchmark/db_uploader.py \
--results-dir=./benchmark_results \
--db-uri=${{ secrets.BENCHMARK_DB_URI }}

- name: Generate reports
run: |
python benchmark/report_generator.py \
--results-dir=./benchmark_results \
--output-dir=./benchmark_reports

- name: Upload benchmark results
uses: actions/upload-artifact@v3
with:
name: benchmark-results
path: benchmark_results/

- name: Upload benchmark reports
uses: actions/upload-artifact@v3
with:
name: benchmark-reports
path: benchmark_reports/

- name: Send Slack notification
if: always()
run: |
python benchmark/slack_notifier.py \
--commit=${{ github.sha }} \
--results-dir=./benchmark_results \
--webhook-url=${{ secrets.SLACK_WEBHOOK_URL }} \
--repo=${{ github.repository }} \
--run-id=${{ github.run_id }}
Loading
Loading