Skip to content

Nightly Benchmarks #445

Nightly Benchmarks

Nightly Benchmarks #445

name: Nightly Benchmarks
on:
push: # For testing
branches: ['benchmark-*']
schedule:
- cron: '0 7 * * *'
jobs:
setup:
if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }}
runs-on: [benchmark]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup JDK 11
id: setup-java-11
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Setup JDK 17
id: setup-java-17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Set JAVA_HOME
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
- name: Setup gradle properties
run: |
cat .github/env/${{ runner.os }}/gradle.properties >> gradle.properties
echo >> gradle.properties
echo "org.gradle.java.installations.paths=${{ steps.setup-java-11.outputs.path }},${{ steps.setup-java-17.outputs.path }}," >> gradle.properties
cat gradle.properties
- name: Build
uses: burrunan/gradle-cache-action@v1
with:
job-id: benchmark
arguments: build
gradle-version: wrapper
benchmarks:
if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }}
needs: setup
runs-on: [benchmark]
steps:
- name: Benchmark - sumByBenchmark
uses: burrunan/gradle-cache-action@v1
with:
job-id: benchmark
arguments: :engine-benchmark:sumByBenchmark
gradle-version: wrapper
- name: Benchmark - PercentileByBenchmark
uses: burrunan/gradle-cache-action@v1
with:
job-id: benchmark
arguments: :engine-benchmark:percentileByBenchmark
gradle-version: wrapper
archive:
if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }}
needs: benchmarks
runs-on: [benchmark]
steps:
- name: Archive benchmark results
uses: actions/upload-artifact@v3
with:
name: Benchmark results
path: tmp/logs/*Benchmark*-*.csv
retention-days: 90
publish-metrics:
if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }}
needs: benchmarks
runs-on: [benchmark]
steps:
- name: Setup python environment
uses: "actions/setup-python@v2"
with:
python-version: "3.9"
- name: Install requirements
run: |
set -xe
python -VV
python -m site
python -m pip install --upgrade pip
python -m pip install --requirement .github/tools/metrics/requirements.txt
- name: Commit Metrics to GCP monitoring
run: "python .github/tools/metrics/benchmark_capture.py --template-path=.github/tools/metrics/templates/ tmp/logs/*Benchmark*-*.csv"