try to allow jmh benchmarks to be cached for faster ci runs #4858
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: examples | |
permissions: read-all | |
on: [ push, pull_request ] | |
env: | |
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} | |
JAVA_VERSION: 21 | |
jobs: | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 | |
with: | |
disable-sudo: true | |
egress-policy: block | |
allowed-endpoints: > | |
api.github.com:443 | |
api.adoptium.net:443 | |
caffeine.gradle-enterprise.cloud:443 | |
download.oracle.com:443 | |
downloads.gradle.org:443 | |
downloads.gradle-dn.com:443 | |
gds.oracle.com:443 | |
github.com:443 | |
jcenter.bintray.com:443 | |
objects.githubusercontent.com:443 | |
plugins.gradle.org:443 | |
plugins-artifacts.gradle.org:443 | |
repo.maven.apache.org:443 | |
repo1.maven.org:443 | |
services.gradle.org:443 | |
www.graalvm.org:443 | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Setup Gradle | |
uses: ./.github/actions/run-gradle | |
with: | |
java: ${{ env.JAVA_VERSION }} | |
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
- name: Simulator | |
run: > | |
./gradlew simulator:run | |
-Dcaffeine.simulator.report.output=$(pwd)/simulation.md | |
-Dcaffeine.simulator.files.paths.0="corda:trace_vaultservice.gz" | |
-Dcaffeine.simulator.files.paths.1="lirs:loop.trace.gz" | |
-Dcaffeine.simulator.files.paths.2="corda:trace_vaultservice.gz" | |
- name: Publish Simulator Results | |
run: | | |
{ | |
echo '### Adaptivity' | |
echo '```' | |
cat $(pwd)/simulation.md | |
echo '```' | |
} >> $GITHUB_STEP_SUMMARY | |
- name: Chart Simulation | |
run: ./gradlew -q simulator:simulate --maximumSize=100,200,300 | |
- name: Memory Overhead | |
run: ./gradlew -q caffeine:memoryOverhead | |
- name: Stresser (read) | |
run: > | |
timeout 1m ./gradlew -q caffeine:stress --workload=read | |
|| ([[ $? -eq 124 ]] && echo "Timeout reached, but that's OK") | |
- name: Stresser (write) | |
run: > | |
timeout 1m ./gradlew -q caffeine:stress --workload=write | |
|| ([[ $? -eq 124 ]] && echo "Timeout reached, but that's OK") | |
- name: Stresser (refresh) | |
run: > | |
timeout 1m ./gradlew -q caffeine:stress --workload=refresh | |
|| ([[ $? -eq 124 ]] && echo "Timeout reached, but that's OK") | |
- name: Write-behind (rxjava) | |
working-directory: examples/write-behind-rxjava | |
run: ./gradlew build | |
- name: Coalescing Bulkloader (reactor) | |
working-directory: examples/coalescing-bulkloader-reactor | |
run: ./gradlew build | |
- name: Hibernate (jcache) | |
working-directory: examples/hibernate | |
run: ./gradlew build | |
- name: Indexable | |
working-directory: examples/indexable | |
run: ./gradlew build | |
- name: Resilience (failsafe) | |
working-directory: examples/resilience-failsafe | |
run: ./gradlew build | |
- name: Prepare for Graal Native Image | |
uses: ./.github/actions/run-gradle | |
env: | |
SNAPSHOT: true | |
with: | |
java: GraalVM | |
arguments: -q caffeine:clean caffeine:jar | |
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
- name: Graal Native Image | |
uses: ./.github/actions/run-gradle | |
env: | |
SNAPSHOT: true | |
with: | |
java: GraalVM | |
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
arguments: > | |
--project-dir examples/graal-native | |
-Pagent run | |
metadataCopy --task run --dir src/main/resources/META-INF/native-image | |
nativeRun nativeTest |