setup-java/.github/workflows/benchmark-cache-restore.yml
Philip Gai 11741d6cfa
Some checks failed
Licensed / Licensed (push) Failing after 1s
Basic validation / Basic validation (push) Failing after 1s
Check dist/ / Check dist/ (push) Failing after 1s
CodeQL analysis / CodeQL analysis (push) Failing after 0s
Validate cache / gradle-save (ubuntu-latest) (push) Failing after 11s
Validate cache / maven-save (ubuntu-latest) (push) Failing after 9s
Validate cache / sbt-save (ubuntu-22.04) (push) Failing after 10s
Validate cache / gradle1-save (ubuntu-latest) (push) Failing after 59s
Validate cache / maven1-save (ubuntu-latest) (push) Failing after 37s
Validate cache / sbt1-save (ubuntu-22.04) (push) Failing after 39s
Validate cache / custom-maven-path-save (push) Failing after 4m38s
Validate cache / custom-maven-path-restore (push) Has been skipped
Validate local file / Validate installation from local file Zulu (ubuntu-latest) (push) Failing after 6s
Validate local file / Validate installation from local file Eclipse Temurin (ubuntu-latest) (push) Failing after 4s
Validate publishing functionality / Validate settings.xml (ubuntu-latest) (push) Failing after 10s
Validate publishing functionality / settings.xml is overwritten if flag is true (ubuntu-latest) (push) Failing after 10s
Validate publishing functionality / settings.xml is not overwritten if flag is false (ubuntu-latest) (push) Failing after 9s
Validate publishing functionality / settings.xml in custom location (ubuntu-latest) (push) Failing after 10s
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (liberica, jdk+fx, ubuntu-latest, 21) (push) Failing after 10s
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (microsoft, jdk, ubuntu-latest, 25) (push) Failing after 9s
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, ubuntu-latest, 21) (push) Failing after 10s
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, ubuntu-latest, 25) (push) Failing after 10s
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (zulu, jre, ubuntu-latest, 17) (push) Failing after 10s
Security analysis with zizmor / Analyze workflows with zizmor (push) Failing after 9s
Validate cache / gradle-save (macos-15-intel) (push) Has been cancelled
Validate cache / gradle-save (windows-latest) (push) Has been cancelled
Validate cache / sbt-save (windows-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml is not overwritten if flag is false (windows-latest) (push) Has been cancelled
Validate cache / maven-save (macos-15-intel) (push) Has been cancelled
Validate cache / maven-save (windows-latest) (push) Has been cancelled
Validate cache / sbt-save (macos-15-intel) (push) Has been cancelled
Validate cache / gradle1-save (macos-latest) (push) Has been cancelled
Validate cache / gradle1-save (windows-latest) (push) Has been cancelled
Validate cache / maven1-save (macos-15-intel) (push) Has been cancelled
Validate cache / maven1-save (windows-latest) (push) Has been cancelled
Validate cache / sbt1-save (macos-15-intel) (push) Has been cancelled
Validate cache / sbt1-save (windows-latest) (push) Has been cancelled
Validate local file / Validate installation from local file Zulu (windows-latest) (push) Has been cancelled
Validate local file / Validate installation from local file Zulu (macos-latest) (push) Has been cancelled
Validate local file / Validate installation from local file Eclipse Temurin (macos-latest) (push) Has been cancelled
Validate local file / Validate installation from local file Eclipse Temurin (windows-latest) (push) Has been cancelled
Validate publishing functionality / Validate settings.xml (macos-latest) (push) Has been cancelled
Validate publishing functionality / Validate settings.xml (windows-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml is overwritten if flag is true (macos-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml is overwritten if flag is true (windows-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml is not overwritten if flag is false (macos-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml in custom location (macos-latest) (push) Has been cancelled
Validate publishing functionality / settings.xml in custom location (windows-latest) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (microsoft, jdk, macos-latest, 25) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (microsoft, jdk, windows-latest, 25) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, macos-latest, 11) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, macos-latest, 25) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, windows-latest, 17) (push) Has been cancelled
Validate Java e2e smoke / ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}) - ${{ matrix.os }} (temurin, jdk, windows-latest, 25) (push) Has been cancelled
Validate cache / gradle2-restore (macos-latest) (push) Has been cancelled
Validate cache / gradle-restore (macos-15-intel) (push) Has been cancelled
Validate cache / gradle-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / gradle-restore (windows-latest) (push) Has been cancelled
Validate cache / maven-restore (macos-15-intel) (push) Has been cancelled
Validate cache / maven-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / maven-restore (windows-latest) (push) Has been cancelled
Validate cache / sbt-restore (macos-15-intel) (push) Has been cancelled
Validate cache / sbt-restore (ubuntu-22.04) (push) Has been cancelled
Validate cache / sbt-restore (windows-latest) (push) Has been cancelled
Validate cache / gradle1-restore (macos-latest) (push) Has been cancelled
Validate cache / gradle1-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / gradle1-restore (windows-latest) (push) Has been cancelled
Validate cache / gradle2-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / gradle2-restore (windows-latest) (push) Has been cancelled
Validate cache / maven1-restore (macos-15-intel) (push) Has been cancelled
Validate cache / maven1-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / maven1-restore (windows-latest) (push) Has been cancelled
Validate cache / maven2-restore (macos-15-intel) (push) Has been cancelled
Validate cache / maven2-restore (ubuntu-latest) (push) Has been cancelled
Validate cache / maven2-restore (windows-latest) (push) Has been cancelled
Validate cache / sbt1-restore (macos-15-intel) (push) Has been cancelled
Validate cache / sbt1-restore (ubuntu-22.04) (push) Has been cancelled
Validate cache / sbt1-restore (windows-latest) (push) Has been cancelled
Validate cache / sbt2-restore (macos-15-intel) (push) Has been cancelled
Validate cache / sbt2-restore (ubuntu-22.04) (push) Has been cancelled
Validate cache / sbt2-restore (windows-latest) (push) Has been cancelled
ci: constrain cache e2e job modes (#1244)
* ci: constrain cache e2e job modes

* ci: constrain cache benchmark job modes
2026-08-18 10:56:27 -04:00

212 lines
8.5 KiB
YAML

name: Benchmark cache restore
on:
workflow_dispatch:
inputs:
baseline-ref:
description: Git ref containing the sequential restore implementation
required: true
default: main
type: string
candidate-ref:
description: Git ref containing the concurrent restore implementation (defaults to the dispatched ref)
required: false
type: string
permissions:
contents: read
defaults:
run:
shell: bash
jobs:
warm-caches:
name: Warm ${{ matrix.tool }} ${{ matrix.profile }} caches (${{ matrix.os }})
runs-on: ${{ matrix.os }}
cache-mode: write-only
strategy:
fail-fast: false
matrix:
os: [macos-15-intel, windows-latest, ubuntu-latest]
tool: [maven, gradle]
profile: [small, large]
steps:
- name: Checkout benchmark workflow
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Checkout baseline
uses: actions/checkout@v7
with:
path: baseline
persist-credentials: false
ref: ${{ inputs.baseline-ref }}
- name: Checkout candidate
uses: actions/checkout@v7
with:
path: candidate
persist-credentials: false
ref: ${{ inputs.candidate-ref || github.ref }}
- name: Prepare benchmark inputs
run: bash __tests__/benchmark-cache-restore.sh prepare "${{ matrix.tool }}" "${{ matrix.profile }}"
- name: Prepare cache save
uses: ./candidate
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
- name: Populate benchmark caches
run: |
bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
bash __tests__/benchmark-cache-restore.sh populate "${{ matrix.tool }}" "${{ matrix.profile }}"
benchmark:
name: Benchmark ${{ matrix.tool }} ${{ matrix.profile }} (${{ matrix.os }})
needs: warm-caches
runs-on: ${{ matrix.os }}
cache-mode: read
strategy:
fail-fast: false
matrix:
os: [macos-15-intel, windows-latest, ubuntu-latest]
tool: [maven, gradle]
profile: [small, large]
steps:
- name: Checkout benchmark workflow
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Checkout baseline
uses: actions/checkout@v7
with:
path: baseline
persist-credentials: false
ref: ${{ inputs.baseline-ref }}
- name: Checkout candidate
uses: actions/checkout@v7
with:
path: candidate
persist-credentials: false
ref: ${{ inputs.candidate-ref || github.ref }}
- name: Prepare benchmark inputs
run: bash __tests__/benchmark-cache-restore.sh prepare "${{ matrix.tool }}" "${{ matrix.profile }}"
- name: Reset caches for baseline iteration 1
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start baseline iteration 1 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with baseline iteration 1
id: baseline-1
uses: ./baseline
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record baseline iteration 1
env:
CACHE_HIT: ${{ steps.baseline-1.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" baseline 1 "$CACHE_HIT"
- name: Reset caches for candidate iteration 1
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start candidate iteration 1 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with candidate iteration 1
id: candidate-1
uses: ./candidate
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record candidate iteration 1
env:
CACHE_HIT: ${{ steps.candidate-1.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" candidate 1 "$CACHE_HIT"
- name: Reset caches for candidate iteration 2
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start candidate iteration 2 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with candidate iteration 2
id: candidate-2
uses: ./candidate
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record candidate iteration 2
env:
CACHE_HIT: ${{ steps.candidate-2.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" candidate 2 "$CACHE_HIT"
- name: Reset caches for baseline iteration 2
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start baseline iteration 2 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with baseline iteration 2
id: baseline-2
uses: ./baseline
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record baseline iteration 2
env:
CACHE_HIT: ${{ steps.baseline-2.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" baseline 2 "$CACHE_HIT"
- name: Reset caches for baseline iteration 3
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start baseline iteration 3 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with baseline iteration 3
id: baseline-3
uses: ./baseline
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record baseline iteration 3
env:
CACHE_HIT: ${{ steps.baseline-3.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" baseline 3 "$CACHE_HIT"
- name: Reset caches for candidate iteration 3
run: bash __tests__/benchmark-cache-restore.sh reset "${{ matrix.tool }}"
- name: Start candidate iteration 3 timer
run: bash __tests__/benchmark-cache-restore.sh start "${{ matrix.tool }}"
- name: Restore with candidate iteration 3
id: candidate-3
uses: ./candidate
with:
distribution: temurin
java-version: '17'
cache: ${{ matrix.tool }}
cache-dependency-path: benchmark/${{ matrix.tool == 'maven' && 'pom.xml' || 'build.gradle' }}
cache-read-only: true
- name: Record candidate iteration 3
env:
CACHE_HIT: ${{ steps.candidate-3.outputs.cache-hit }}
run: bash __tests__/benchmark-cache-restore.sh record "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.profile }}" candidate 3 "$CACHE_HIT"
- name: Summarize benchmark
run: bash __tests__/benchmark-cache-restore.sh summarize "${{ matrix.tool }}" "$GITHUB_STEP_SUMMARY"
- name: Upload raw timings
uses: actions/upload-artifact@v7
with:
name: cache-restore-${{ matrix.os }}-${{ matrix.tool }}-${{ matrix.profile }}
path: .benchmark-results/timings.csv
if-no-files-found: error