diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 76e5b481..69ba885a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,18 +30,19 @@ jobs:
name: Test JDK ${{ matrix.java }}
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@main
- name: Set up JDK
- uses: actions/setup-java@v2
+ uses: actions/setup-java@main
with:
java-version: ${{ matrix.java }}
distribution: ${{ matrix.distribution }}
- - name: Cache Maven
- uses: actions/cache@v2
+ - name: Cache local Maven m2
+ uses: actions/cache@v3
with:
path: ~/.m2
- key: m2
- restore-keys: m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-m2
- name: Chmod
run: chmod +x mvnw
- name: Test with Maven
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000..b2475e02
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,55 @@
+#
+# Copyright 2009-2021 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: Publish package to the Maven Central Repository
+
+
+
+on:
+ release:
+ types: [created]
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out Git repository
+ uses: actions/checkout@main
+ - name: Install Java and Maven
+ uses: actions/setup-java@main
+ with:
+ java-version: 8
+ distribution: 'adopt'
+ server-id: ossrh
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ - name: Cache local Maven m2
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-m2
+ - id: install-secret-key
+ name: Install GPG secret key
+ run: |
+ cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import
+ - name: Publish package
+ run: |
+ mvn --batch-mode -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} clean deploy -Dmaven.test.skip=true -Dmaven.javadoc.skip=false -Dgpg.skip=false
+ env:
+ MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 39ca4669..96d7f698 100644
--- a/pom.xml
+++ b/pom.xml
@@ -229,6 +229,11 @@
flatten-maven-plugin
1.2.7
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.13
+
@@ -307,6 +312,13 @@
+
+
+
+ --pinentry-mode
+ loopback
+
+
org.apache.maven.plugins
@@ -389,6 +401,18 @@
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+