Skip to content

Create hyperfoil yaml rather than running wrk directly #379

Create hyperfoil yaml rather than running wrk directly

Create hyperfoil yaml rather than running wrk directly #379

Workflow file for this run

name: Build and test
on:
push:
paths-ignore:
- '**/*.md'
- '**/images/**'
- '.github/dependabot.yml'
branches:
- main
- ootb
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
branches:
- main
- ootb
paths-ignore:
- '**/*.md'
- '**/images/**'
- '.github/dependabot.yml'
workflow_dispatch:
concurrency:
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}"
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
defaults:
run:
shell: bash
jobs:
jvm-build-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java:
- '21'
- '25'
app:
- { "name": "springboot3", "dir": "springboot3", "args": "" }
- { "name": "springboot3-virtual", "dir": "springboot3", "args": "-Dspring.threads.virtual.enabled=true" }
- { "name": "springboot4", "dir": "springboot4", "args": "" }
- { "name": "springboot4-virtual", "dir": "springboot4", "args": "-Dspring.threads.virtual.enabled=true" }
- { "name": "quarkus3", "dir": "quarkus3", "args": "" }
- { "name": "quarkus3-virtual", "dir": "quarkus3-virtual", "args": "" }
- { "name": "quarkus3-spring-compatibility", "dir": "quarkus3-spring-compatibility", "args": "" }
name: "[jvm-build-test-java${{ matrix.java }}]: ${{ matrix.app.name }}"
steps:
- uses: actions/checkout@v6
- name: Set up Java ${{ matrix.java }}
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.java }}
distribution: temurin
cache: maven
- name: Build and test
working-directory: ${{ matrix.app.dir }}
run: |
./mvnw -B clean verify ${{ matrix.app.args }} \
-Dmaven.compiler.release=${{ matrix.java }} \
-Djava.version=${{ matrix.java }}
- name: Setup JBang
uses: jbangdev/setup-jbang@main
- name: Validate simple scripts
run: |
case "${{ matrix.app.name }}" in
springboot3)
TARGET_DIR="${{ matrix.app.dir }}/target/springboot3.jar"
;;
springboot3-virtual)
TARGET_DIR="${{ matrix.app.dir }}/target/springboot3.jar"
;;
springboot4)
TARGET_DIR="${{ matrix.app.dir }}/target/springboot4.jar"
;;
springboot4-virtual)
TARGET_DIR="${{ matrix.app.dir }}/target/springboot4.jar"
;;
quarkus3)
TARGET_DIR="${{ matrix.app.dir }}/target/quarkus-app/quarkus-run.jar"
;;
quarkus3-virtual)
TARGET_DIR="${{ matrix.app.dir }}/target/quarkus-app/quarkus-run.jar"
;;
quarkus3-spring-compatibility)
TARGET_DIR="${{ matrix.app.dir }}/target/quarkus-app/quarkus-run.jar"
;;
*)
echo "Unknown app: ${{ matrix.app.name }}"
exit 1
;;
esac
scripts/stress.sh "$TARGET_DIR"
scripts/1strequest.sh "java -XX:ActiveProcessorCount=8 -Xms512m -Xmx512m -jar $TARGET_DIR" 5