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..cac016f
--- /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-test/lib/*.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..f26be8e 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
@@ -247,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
@@ -345,6 +362,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
+
+
+
+
+