diff --git a/.github/workflows/artifactory-stage.yml b/.github/workflows/artifactory-stage.yml
new file mode 100644
index 000000000..07fb77681
--- /dev/null
+++ b/.github/workflows/artifactory-stage.yml
@@ -0,0 +1,38 @@
+name: Artifactory Staging
+
+on:
+ workflow_dispatch:
+ inputs:
+ releaseVersion:
+ description: "Release version"
+ required: true
+
+jobs:
+ build:
+ name: Stage release to Artifactory
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout source code
+ uses: actions/checkout@v3
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Capture release version
+ run: echo RELEASE_VERSION=${{ github.event.inputs.releaseVersion }} >> $GITHUB_ENV
+
+ - name: Enforce release rules
+ run: mvn org.apache.maven.plugins:maven-enforcer-plugin:enforce -Drules=requireReleaseDeps
+
+ - name: Update release version
+ run: mvn versions:set -DgenerateBackupPoms=false -DnewVersion=$RELEASE_VERSION
+
+ - name: Build with Maven and deploy to Artifactory staging repository
+ env:
+ ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
+ ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
+ run: mvn -P artifactory -s settings.xml --batch-mode -Dmaven.test.skip=true deploy
diff --git a/pom.xml b/pom.xml
index 0f8df64f9..fd8c7149d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -344,6 +344,18 @@
+
+ artifactory
+
+
+ spring-staging
+ https://repo.spring.io/libs-staging-local
+
+ false
+
+
+
+
diff --git a/settings.xml b/settings.xml
index dd01ca87c..6886d0189 100644
--- a/settings.xml
+++ b/settings.xml
@@ -9,6 +9,11 @@
${env.ARTIFACTORY_USERNAME}
${env.ARTIFACTORY_PASSWORD}
+
+ spring-staging
+ ${env.ARTIFACTORY_USERNAME}
+ ${env.ARTIFACTORY_PASSWORD}
+
\ No newline at end of file