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 + +