Publish to Maven Central #24
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a Java project with Maven and publish artifact to Maven Central (https://search.maven.org) | |
# | |
# After deploy to https://s01.oss.sonatype.org finished, manual steps is required : | |
# - Go to: https://s01.oss.sonatype.org/#stagingRepositories | |
# - Check upload and if all is right, "Close" corresponding Staging Repository | |
# - "Release" corresponding Staging Repository | |
# - Wait some hours and then check availability of release on Maven central: https://search.maven.org/search?q=g:org.greencodeinitiative | |
# | |
# Additional information: | |
# - https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-maven#publishing-packages-to-the-maven-central-repository | |
# - https://blogs.itemis.com/en/github-actions-releasing-artifacts-into-maven-central | |
name: Publish to Maven Central | |
on: | |
workflow_dispatch: | |
jobs: | |
publish: | |
name: Deploy to Maven central | |
runs-on: ubuntu-latest | |
steps: | |
# Checks out a copy of project's repository. | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Sets up the Java JDK, and also configures the Maven `settings.xml` file to add authentication for the | |
# `ossrh` repository using the `OSSRH_USERNAME` and `OSSRH_TOKEN` environment variables. | |
- name: Set up Maven Central Repository | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '11' | |
distribution: 'adopt' | |
server-id: 'central' # must match the serverId configured for the central-publishing-maven-plugin in `pom.xml` | |
server-username: MAVEN_USERNAME | |
server-password: MAVEN_PASSWORD | |
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Substituted with the value stored in the referenced secret | |
gpg-passphrase: MAVEN_GPG_PASSPHRASE # Env var that holds the key's passphrase | |
- name: Cache Maven packages | |
uses: actions/cache@v1 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
# Runs the Maven command to publish to the maven central repository. | |
# The `MAVEN_CENTRAL_USERNAME` environment variable will be set with the contents of your `MAVEN_CENTRAL_USERNAME` secret, | |
# and the `MAVEN_CENTRAL_TOKEN` environment variable will be set with the contents of your `MAVEN_CENTRAL_TOKEN` secret. | |
- name: Publish package | |
run: ./mvnw --batch-mode deploy -Pmaven-central-publishing | |
env: | |
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} | |
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} |