Skip to content

Use HTTP/1.1 when ALPN protocol is not specified (#162) #81

Use HTTP/1.1 when ALPN protocol is not specified (#162)

Use HTTP/1.1 when ALPN protocol is not specified (#162) #81

name: CI JMeter Compatibility
on:
push:
branches:
- development
- master
workflow_dispatch:
jobs:
jmeter_compatibility:
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Java 17
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "17"
cache: maven
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install Taurus
run: |
python -m pip install --upgrade pip
# Install Taurus from pinned constraints to avoid upstream resolver drift.
python -m pip install -r .github/taurus-constraints.txt
python --version
python - <<'PY'
import importlib.metadata as metadata
for pkg in ("bzt", "urwid"):
print(f"{pkg}=={metadata.version(pkg)}")
PY
- name: Restore JMeter cache
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.jmeter
key: jmeter-${{ runner.os }}-${{ hashFiles('pom.xml', 'src/test/resources/jmeter/**', 'src/test/resources/jmeter-regression/**') }}
restore-keys: |
jmeter-${{ runner.os }}-
- name: Build project and jmeter-test bundle
run: xvfb-run -a mvn -U --batch-mode clean install
- name: Run JMeter HTTP parity regression (all tiers)
run: >-
xvfb-run -a mvn -Pjmeter-regression
-Dcheckstyle.skip=true
-DskipTests
-Djmeter.regression.tier=all
-Djmeter.regression.tolerateExternalServiceDrift=true
--batch-mode
verify
- name: Run compatibility matrix on Java 17
working-directory: target/jmeter-test
env:
JMETER_PATH_BASE: ${{ github.workspace }}/.jmeter
run: |
# Verify the built plugin jar loads and runs against every JMeter version we claim
# to support: 5.5 (minimum) through 5.6.3 (latest), regardless of which version the
# jar itself was compiled against (jmeter.version in pom.xml is provided-scope).
for JMETER_VERSION in 5.5 5.6.3; do
echo "=== Compatibility check against JMeter $JMETER_VERSION ==="
JMETER_VERSION=$JMETER_VERSION JMETER_PATH=$JMETER_PATH_BASE/$JMETER_VERSION sh testJMeter.sh
done
- name: Upload compatibility artifacts on failure
if: failure()
uses: actions/upload-artifact@v6
with:
name: ci-jmeter-compat-failure-${{ github.run_id }}
path: target/jmeter-test
if-no-files-found: warn
retention-days: 1