Merge pull request #153 from unitaryfund/willzeng-patch-1 #109
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
name: Run Benchmarks | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: # Allows the workflow to be triggered manually | |
inputs: # Optional inputs to customize the workflow when triggered manually | |
branch: | |
description: 'Branch to run benchmarks on' | |
required: false | |
default: 'main' | |
jobs: | |
run-benchmarks: | |
runs-on: ucc-benchmarks-8-core | |
steps: | |
# Checkout the repository | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Ensure the full history is fetched | |
# Build the Docker image | |
- name: Build Docker image | |
run: docker build -t ucc-benchmark . | |
# Run the benchmarks in the Docker container | |
- name: Run benchmarks | |
run: | | |
docker run --rm \ | |
-v "/home/runner/work/ucc/ucc:/ucc" \ | |
ucc-benchmark bash -c " | |
source /venv/bin/activate && \ | |
./benchmarks/scripts/run_benchmarks.sh 8 && \ | |
python ./benchmarks/scripts/plot_avg_benchmarks_over_time.py && \ | |
python ./benchmarks/scripts/plot_latest_benchmarks.py | |
" | |
# Commit and push benchmark results | |
- name: Configure Git for commit | |
run: | | |
git config --global user.email "actions@github.com" | |
git config --global user.name "GitHub Actions" | |
# Ensure the latest changes from the remote branch are fetched | |
- name: Fetch latest changes and auto-resolve conflicts for .png files | |
run: | | |
git fetch origin ${{ github.head_ref || github.ref_name }} | |
git switch ${{ github.head_ref || github.ref_name }} | |
# Merge changes and resolve conflicts favoring the generated .png files | |
git merge origin/${{ github.head_ref || github.ref_name }} || true | |
git checkout --theirs -- benchmarks/*.png | |
git add benchmarks/*.png | |
# Commit and push results | |
- name: Commit and push results | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git add benchmarks/* | |
git status | |
git commit -m "Update benchmark results" || echo "No changes to commit" | |
git push origin HEAD:${{ github.head_ref || github.ref_name }} |