Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restore safer jmh benchmark workflow #11

Merged
merged 1 commit into from
Jun 9, 2024
Merged
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
68 changes: 68 additions & 0 deletions .github/workflows/jmh-benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# This GitHub Actions workflow runs JMH benchmarks when a new comment is created on a pull request
name: Run JMH Benchmarks for Pull Request

on:
pull_request: # This workflow triggers when a comment is created
types: [labeled]

# Only allow one instance of JMH benchmarking to be running at any given time
concurrency: all

jobs:
benchmarking:
# Only run this job if a comment on a pull request contains '/benchmark' and is a PR on the uber/NullAway repository
if: github.event.label.name == 'run-benchmarks'
runs-on: ubuntu-latest
permissions: write-all

steps:

- name: Checkout repository
uses: actions/checkout@v4

- name: Set branch name
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
chmod +x ./.github/workflows/get_repo_details.sh
./.github/workflows/get_repo_details.sh "${{ secrets.GITHUB_TOKEN }}" "${{ github.event.issue.number }}" "${{ github.repository }}"

- id: 'auth'
name: Authenticating
uses: google-github-actions/auth@v2
with:
credentials_json: '${{ secrets.GCP_SA_KEY_1 }}'

- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@v2

- name: Start VM
run: gcloud compute instances start nullway-jmh --zone=us-central1-a

- name: Run benchmarks
run: |
chmod +x ./.github/workflows/run_gcp_benchmarks.sh
./.github/workflows/run_gcp_benchmarks.sh

- name: Cleanup
# Delete the branch directory on the Google Cloud instance
if: always()
run: |
./.github/workflows/gcloud_ssh.sh " export BRANCH_NAME=${BRANCH_NAME} && rm -r -f $BRANCH_NAME"

- name: Formatting Benchmark # Create a text file containing the benchmark results
run: |
(echo 'Main Branch:'; echo '```' ; cat main_text.txt; echo '```'; echo 'With This PR:'; echo '```' ; cat pr_text.txt; echo '```') > benchmark.txt

- name: Comment Benchmark
uses: mshick/add-pr-comment@v2
if: always() # This step is for adding the comment
with:
message-path: benchmark.txt # The path to the message file to leave as a comment
message-id: benchmark
- name: Stop VM
if: always()
run: gcloud compute instances stop nullway-jmh --zone=us-central1-a