Files
Radixor/.github/workflows/benchmarks.yml
Leo Galambos db79dd2d4f ci: refine build, benchmark, and Pages workflows
* add workflow-level concurrency control for benchmark and Pages pipelines
* keep release changelog generation and the separate distZip step in the build workflow by design
* align the benchmark workflow with the primary Gradle action setup
* add Gradle wrapper validation to benchmark runs
* switch benchmark caching and setup to gradle/actions/setup-gradle
* remove the redundant Gradle wrapper executable-bit adjustment
* keep benchmark generation in Pages unchanged while improving workflow control
2026-04-18 15:38:19 +02:00

68 lines
1.5 KiB
YAML

name: Benchmarks
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * 1'
push:
branches:
- main
paths:
- 'src/main/**'
- 'src/jmh/**'
- 'build.gradle'
- 'gradle.properties'
- 'gradle.lockfile'
- 'settings.gradle'
- 'gradle/**'
- 'gradlew'
- 'gradlew.bat'
- '.github/workflows/benchmarks.yml'
concurrency:
group: benchmarks-${{ github.ref }}
cancel-in-progress: true
jobs:
jmh:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- name: Check out sources
uses: actions/checkout@v4
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up Gradle caching and instrumentation
uses: gradle/actions/setup-gradle@v4
- name: Verify reproducibility inputs
shell: bash
run: |
set -euo pipefail
test -f gradle.lockfile
test -f gradle.properties
test -f gradle/verification-metadata.xml
- name: Run JMH benchmarks
run: ./gradlew clean jmh --no-daemon
- name: Upload JMH reports
uses: actions/upload-artifact@v4
with:
name: jmh-reports
path: |
build/reports/jmh/**
build/results/jmh/**
if-no-files-found: warn