Skip to content

Performance Tests #2072

Performance Tests

Performance Tests #2072

Workflow file for this run

name: Performance Tests
env:
JAVA_OPTS: "-Xms512m -Xmx6048m -Xss128m -XX:ReservedCodeCacheSize=512m -server"
GRADLE_OPTS: "-Xms512m -Xmx6048m -Xss128m -XX:ReservedCodeCacheSize=512m -server"
TERM: xterm-256color
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GRADLE_BUILDCACHE_USER: ci
# GRADLE_BUILDCACHE_PSW: ${{ secrets.GRADLE_BUILDCACHE_PSW }}
DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
GH_PACKAGE_REGISTRY_USER: ${{ secrets.GH_PACKAGE_REGISTRY_USER }}
GH_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GH_PACKAGE_REGISTRY_TOKEN }}
PYTHON_VERSION: 3.12.3
JDK_CURRENT: 21
JDK_DISTRIBUTION: "corretto"
##########################################################################
on:
workflow_dispatch:
schedule:
- cron: "0 22 * * *"
concurrency:
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}"
cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'apereo/cas' }}
##########################################################################
jobs:
initialize:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Initialize
run: ls ./ci && find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
##########################################################################
tests-performance-locust:
runs-on: ubuntu-latest
needs: [initialize]
continue-on-error: false
strategy:
fail-fast: false
matrix:
category:
- tomcat
- jetty
- undertow
name: locust - ${{ matrix.category }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Initialize
run: find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
- name: Locust Performance Tests
run: ./ci/tests/perf/perftests-locust.sh ${{ matrix.category }}
##########################################################################
tests-performance-jmeter:
runs-on: ubuntu-latest
needs: [initialize]
continue-on-error: false
strategy:
fail-fast: false
matrix:
category:
- tomcat
- jetty
- undertow
protocols:
- cas
- oidc
- saml
name: jmeter - ${{ matrix.category }} - ${{ matrix.protocols }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Initialize
run: find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: JMeter Performance Tests ${{ matrix.protocols }} / ${{ matrix.category }}
uses: nick-fields/retry@v3
with:
max_attempts: 2
timeout_minutes: 15
retry_on: error
shell: bash
command: |
export RUNNER_OS=${{ runner.os }}
./ci/tests/perf/perftests-jmeter.sh ${{ matrix.category }} ${{ matrix.protocols }}
##########################################################################
tests-performance-artillery:
runs-on: ubuntu-latest
needs: [initialize]
continue-on-error: false
strategy:
fail-fast: false
matrix:
category:
- tomcat
- jetty
- undertow
protocols:
- cas
- saml
name: artillery - ${{ matrix.category }} - ${{ matrix.protocols }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Initialize
run: find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Artillery Performance Tests ${{ matrix.protocols }} / ${{ matrix.category }}
uses: nick-fields/retry@v3
with:
max_attempts: 2
timeout_minutes: 15
retry_on: error
shell: bash
command: |
export RUNNER_OS=${{ runner.os }}
./ci/tests/perf/perftests-artillery.sh ${{ matrix.category }} ${{ matrix.protocols }}