You've already forked setup-java
mirror of
https://gh-proxy.com/github.com/actions/setup-java.git
synced 2026-08-03 13:36:02 +08:00
5af9662649
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
210 lines
8.4 KiB
YAML
210 lines
8.4 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 }}
|
|
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 }}
|
|
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
|