Skip to content

Commit

Permalink
add configuration for deploying to maven central
Browse files Browse the repository at this point in the history
  • Loading branch information
barrypitman committed Apr 25, 2022
1 parent ffb492c commit f75b9a4
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 24 deletions.
34 changes: 13 additions & 21 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,26 @@
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path

name: Maven Package

name: Publish package to the Maven Central Repository
on:
release:
types: [created]

jobs:
build:

publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v3
- name: Set up JDK 8
- name: Set up Maven Central Repository
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file

- name: Build with Maven
run: mvn -B package --file pom.xml
server-id: sonatype-nexus-staging
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE

- name: Publish to GitHub Packages Apache Maven
run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
- name: Publish package
run: mvn --batch-mode deploy -P deploy
env:
GITHUB_TOKEN: ${{ github.token }}
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
72 changes: 69 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,44 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>


<developers>
<developer>
<name>Barry Pitman</name>
<email>[email protected]</email>
<organization>Ubiquitech</organization>
<organizationUrl>https://ubiquitech.co.za/</organizationUrl>
</developer>

</developers>

<scm>
<url>https://github.com/barrypitman/JUnitXmlFormatter</url>
<connection>scm:git:https://github.com/barrypitman/JUnitXmlFormatter.git</connection>
<developerConnection>scm:git:https://github.com/barrypitman/JUnitXmlFormatter.git</developerConnection>
<tag>HEAD</tag>
</scm>

<distributionManagement>
<snapshotRepository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/ubiquitech/staging</url>
<id>sonatype-nexus-staging</id>
<name>Nexus Release Repository</name>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
<downloadUrl>https://oss.sonatype.org/content/groups/public/org/knowm/xchart</downloadUrl>
</distributionManagement>

<dependencies>
Expand All @@ -31,4 +63,38 @@
<version>4.11</version>
</dependency>
</dependencies>

<profiles>
<profile>
<id>deploy</id>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<!-- Prevent gpg from using pinentry programs -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

</profile>
</profiles>

</project>

0 comments on commit f75b9a4

Please sign in to comment.