Skip to content

Commit

Permalink
[chore] Set up Actions-based release process (#326)
Browse files Browse the repository at this point in the history
  • Loading branch information
nwithan8 authored Jul 30, 2024
1 parent 69b59ae commit 95f7b45
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# This workflow will build a Java project with Maven and publish it to Maven Central Repository
# ref: https://github.com/actions/setup-java/blob/v3.11.0/docs/advanced-usage.md#Publishing-using-Apache-Maven

# Secrets required:
# - MAVEN_USERNAME: Username for Maven Central Repository
# - MAVEN_CENTRAL_TOKEN: Token/password for Maven Central Repository
# - MAVEN_GPG_PRIVATE_KEY: GPG private key to sign the artifacts (string)
# - MAVEN_GPG_PASSPHRASE: Passphrase for the GPG private key

name: Publish library to Maven Central Repository

on:
release:
types: [ created ]
secrets:
MAVEN_USERNAME:
required: true
MAVEN_CENTRAL_TOKEN:
required: true
MAVEN_GPG_PRIVATE_KEY:
required: true
MAVEN_GPG_PASSPHRASE:
required: true
workflow_dispatch: ~

jobs:
release:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install JDK
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "22" # Always use the latest JDK
server-id: "ossrh"
# define environmental variable names
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-passphrase: MAVEN_GPG_PASSPHRASE
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}

- name: Clean, build and publish to Apache Maven Central
run: make publish pass=${{ secrets.MAVEN_GPG_PASSPHRASE }}
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

- name: Upload output files to release
uses: AButler/[email protected]
with:
files: "target/*.jar;target/*.pom;target/*.asc"
repo-token: ${{ secrets.GITHUB_TOKEN }}
7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,13 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<!-- Needed to read passphrase from settings.xml -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
Expand Down

0 comments on commit 95f7b45

Please sign in to comment.