From 827884767278d216905a5683a611b79002030962 Mon Sep 17 00:00:00 2001 From: Joaquin Araujo Date: Wed, 3 Jun 2026 12:42:20 -0300 Subject: [PATCH 1/2] Setup sonar relase and github deploy --- .github/maven-central-deploy.sh | 11 +++ .github/settings.xml | 27 ++++++++ .github/workflows/release.yml | 92 +++++++++++++++++++++++++ pom.xml | 118 ++++++++++++++++++++++++++++++-- 4 files changed, 243 insertions(+), 5 deletions(-) create mode 100755 .github/maven-central-deploy.sh create mode 100644 .github/settings.xml create mode 100644 .github/workflows/release.yml diff --git a/.github/maven-central-deploy.sh b/.github/maven-central-deploy.sh new file mode 100755 index 0000000..0313c03 --- /dev/null +++ b/.github/maven-central-deploy.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# +# Deploys release artifacts to Maven Central via the Sonatype Central Portal. +# +# Required environment variables: GPG_SECRET_KEYS, GPG_OWNERTRUST, GPG_EXECUTABLE + +set -eo pipefail + +echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --batch --import +echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --batch --import-ownertrust +mvn --batch-mode deploy -Prelease -DskipTests --settings .github/settings.xml diff --git a/.github/settings.xml b/.github/settings.xml new file mode 100644 index 0000000..b0714c3 --- /dev/null +++ b/.github/settings.xml @@ -0,0 +1,27 @@ + + + + + central + ${env.SONATYPE_USERNAME} + ${env.SONATYPE_PASSWORD} + + + + + + central + + true + + + ${env.GPG_EXECUTABLE} + ${env.GPG_PASSPHRASE} + + + + + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..80c8e23 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,92 @@ +name: release +run-name: release ${{ inputs.version }} +on: + workflow_dispatch: + inputs: + version: + description: "Release version (e.g. 3.4.0)" + required: true + type: string + +permissions: + contents: write + +concurrency: + group: release + cancel-in-progress: false + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Ensure release runs on master + run: | + if [ "${{ github.ref_name }}" != "master" ]; then + echo "Release must be triggered from master branch." + exit 1 + fi + + - name: Set up Java 8 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: "8" + cache: maven + + - name: Create release draft + uses: ncipollo/release-action@v1 + with: + tag: v${{ inputs.version }} + name: ${{ inputs.version }} + draft: true + + - name: Set maven project version + run: mvn --batch-mode --no-transfer-progress versions:set -DnewVersion=${{ inputs.version }} + + - name: Commit release version + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "[skip ci] Set release version ${{ inputs.version }}" + branch: master + file_pattern: "pom.xml" + + - name: Build and test + run: xvfb-run -a mvn --batch-mode --no-transfer-progress clean install + + - name: Publish to Maven Central + run: .github/maven-central-deploy.sh + env: + GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }} + GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }} + GPG_EXECUTABLE: gpg + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + + - name: Publish GitHub release + uses: ncipollo/release-action@v1 + with: + tag: v${{ inputs.version }} + allowUpdates: true + omitNameDuringUpdate: true + omitBodyDuringUpdate: true + updateOnlyUnreleased: true + draft: false + artifacts: "target/jmeter-bzm-hls-${{ inputs.version }}.jar" + + - name: Compute next SNAPSHOT version + run: | + IFS='.' read -r major minor patch <<< "${{ inputs.version }}" + echo "SNAPSHOT_VERSION=${major}.${minor}.$((patch + 1))-SNAPSHOT" >> $GITHUB_ENV + + - name: Update to next SNAPSHOT version + run: mvn --batch-mode --no-transfer-progress versions:set -DnewVersion=${{ env.SNAPSHOT_VERSION }} + + - name: Commit SNAPSHOT version + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "[skip ci] Set SNAPSHOT version ${{ env.SNAPSHOT_VERSION }}" + branch: master + file_pattern: "pom.xml" diff --git a/pom.xml b/pom.xml index 81fb857..bae5281 100755 --- a/pom.xml +++ b/pom.xml @@ -5,8 +5,17 @@ com.blazemeter.jmeter jmeter-bzm-hls - 3.3.0 + 3.4.0-SNAPSHOT Video Streaming Sampler as JMeter plugin + BlazeMeter Video Streaming Plugin for JMeter (HLS and MPEG-DASH) + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + https://github.com/Blazemeter/HLSPlugin UTF-8 @@ -15,11 +24,17 @@ - scm:git:git@github.com:Blazemeter/HLSPlugin.git - scm:git:git@github.com:Blazemeter/HLSPlugin.git - - https://github.com/Blazemeter/HLSPlugin + scm:git:git://github.com/Blazemeter/HLSPlugin.git + scm:git:ssh://github.com:Blazemeter/HLSPlugin.git + https://github.com/Blazemeter/HLSPlugin/tree/master + + + team + blazelabs + blazelabs@perforce.com + + jitpack.io @@ -345,6 +360,99 @@ + + release + + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.6.2 + + + enforce-no-snapshots + + enforce + + + + + No Snapshots Allowed! + + org.apache.maven:maven-core + org.apache.maven.plugins:* + + + + true + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.0 + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.5.0 + + + attach-javadocs + + jar + + + + + 8 + false + none + + + + org.apache.maven.plugins + maven-gpg-plugin + 3.1.0 + + + sign-artifacts + + sign + + + + --pinentry-mode + loopback + + + + + + + org.sonatype.central + central-publishing-maven-plugin + 0.9.0 + true + + central + true + published + + + + + From 7d39be3c63a01253da6e241fd920972225b6de4f Mon Sep 17 00:00:00 2001 From: Joaquin Araujo Date: Wed, 3 Jun 2026 18:25:28 -0300 Subject: [PATCH 2/2] Bundle runtime dependencies into Github release The idea is to be able to layout the release automatically. This way, when release happens, all jars for Jmeter-compatibility will be placed int the release. --- .github/workflows/release.yml | 2 +- pom.xml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 80c8e23..cac016f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,7 +74,7 @@ jobs: omitBodyDuringUpdate: true updateOnlyUnreleased: true draft: false - artifacts: "target/jmeter-bzm-hls-${{ inputs.version }}.jar" + artifacts: "target/jmeter-test/lib/*.jar" - name: Compute next SNAPSHOT version run: | diff --git a/pom.xml b/pom.xml index bae5281..f26be8e 100755 --- a/pom.xml +++ b/pom.xml @@ -262,7 +262,9 @@ hlsparserj, jackson-annotations, jackson-core, jackson-databind, jackson-dataformat-xml, jackson-module-jaxb-annotations, - stax2-api, woodstox-core + stax2-api, woodstox-core, + mpd-tools, jmeter-bzm-commons, + jakarta.xml.bind-api, jakarta.activation-api ${project.build.directory}/jmeter-test/lib