Use HTTP/1.1 when ALPN protocol is not specified (#162) #81
This file contains hidden or 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: 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 |