Skip to content

Commit 3b4da06

Browse files
authored
Merge pull request #59 from OneSignal/user-api-updates
chore: enable automatically publishing package to Maven Central
2 parents 8be4a0b + bf1380d commit 3b4da06

7 files changed

Lines changed: 162 additions & 39 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Publish to Maven Central
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
version:
9+
description: 'Version to publish (leave empty to use current version)'
10+
required: false
11+
default: ''
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
23+
with:
24+
java-version: '11'
25+
distribution: 'temurin'
26+
27+
- name: Cache Gradle packages
28+
uses: actions/cache@v3
29+
with:
30+
path: |
31+
~/.gradle/caches
32+
~/.gradle/wrapper
33+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
34+
restore-keys: |
35+
${{ runner.os }}-gradle-
36+
37+
- name: Grant execute permission for gradlew
38+
run: chmod +x gradlew
39+
40+
- name: Set version from input
41+
if: github.event.inputs.version != ''
42+
run: |
43+
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV
44+
sed -i "s/version = '[^']*'/version = '${{ github.event.inputs.version }}'/" build.gradle
45+
46+
- name: Build project
47+
run: ./gradlew build
48+
49+
- name: Run tests
50+
run: ./gradlew test
51+
52+
- name: Publish to Maven Central
53+
run: |
54+
./gradlew publishToMavenCentral --no-configuration-cache \
55+
-PmavenCentralUsername="${{ secrets.MAVEN_CENTRAL_USERNAME }}" \
56+
-PmavenCentralPassword="${{ secrets.MAVEN_CENTRAL_PASSWORD }}" \
57+
-Psigning.keyId="${{ secrets.SIGNING_KEY_ID }}" \
58+
-Psigning.password="${{ secrets.SIGNING_PASSWORD }}" \
59+
-Psigning.secretKeyRingFile="${{ secrets.SIGNING_SECRET_KEY_RING_FILE }}"
60+
61+
- name: Upload build artifacts
62+
uses: actions/upload-artifact@v3
63+
if: always()
64+
with:
65+
name: build-artifacts
66+
path: build/libs/

README.md

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,46 +18,52 @@ Building the API client library requires:
1818

1919
## Installation
2020

21-
To install the API client library to your local Maven repository, simply execute:
21+
### Maven Central (Recommended)
2222

23-
```shell
24-
mvn clean install
25-
```
26-
27-
To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
28-
29-
```shell
30-
mvn clean deploy
31-
```
32-
33-
Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.
23+
The onesignal-java-client is available on Maven Central. Add the following dependency to your project:
3424

35-
### Maven users
25+
#### Maven users
3626

3727
Add this dependency to your project's POM:
3828

3929
```xml
4030
<dependency>
41-
<groupId>org.openapitools</groupId>
31+
<groupId>com.onesignal</groupId>
4232
<artifactId>onesignal-java-client</artifactId>
4333
<version>5.2.0</version>
4434
<scope>compile</scope>
4535
</dependency>
4636
```
4737

48-
### Gradle users
38+
#### Gradle users
4939

5040
Add this dependency to your project's build file:
5141

5242
```groovy
53-
repositories {
43+
dependencies {
44+
implementation "com.onesignal:onesignal-java-client:5.2.0"
45+
}
46+
```
47+
48+
### Manual Installation
49+
50+
To install the library to your local Maven repository, execute:
51+
52+
```shell
53+
mvn clean install
54+
```
55+
56+
#### Local Build Dependencies
57+
58+
```groovy
59+
repositories {
5460
mavenCentral() // Needed if the 'onesignal-java-client' jar has been published to maven central.
5561
mavenLocal() // Needed if the 'onesignal-java-client' jar has been published to the local maven repo.
56-
}
62+
}
5763
58-
dependencies {
59-
implementation "org.openapitools:onesignal-java-client:5.2.0"
60-
}
64+
dependencies {
65+
implementation "com.onesignal:onesignal-java-client:5.2.0"
66+
}
6167
```
6268

6369
### Others

build.gradle

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@ apply plugin: 'idea'
22
apply plugin: 'eclipse'
33
apply plugin: 'java'
44
apply plugin: 'com.diffplug.spotless'
5+
apply plugin: 'com.vanniktech.maven.publish'
56

6-
group = 'org.openapitools'
7+
group = 'com.onesignal'
78
version = '5.2.0'
89

910
buildscript {
1011
repositories {
1112
mavenCentral()
13+
gradlePluginPortal()
1214
}
1315
dependencies {
1416
classpath 'com.android.tools.build:gradle:2.3.+'
1517
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
1618
classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.3.0'
19+
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.25.3'
1720
}
1821
}
1922

@@ -79,22 +82,13 @@ if(hasProperty('target') && target == 'android') {
7982
}
8083

8184
} else {
82-
8385
apply plugin: 'java'
8486
apply plugin: 'maven-publish'
87+
apply from: 'maven-push.gradle'
8588

8689
sourceCompatibility = JavaVersion.VERSION_1_8
8790
targetCompatibility = JavaVersion.VERSION_1_8
8891

89-
publishing {
90-
publications {
91-
maven(MavenPublication) {
92-
artifactId = 'onesignal-java-client'
93-
from components.java
94-
}
95-
}
96-
}
97-
9892
task execute(type:JavaExec) {
9993
main = System.getProperty('mainClass')
10094
classpath = sourceSets.main.runtimeClasspath

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
lazy val root = (project in file(".")).
22
settings(
3-
organization := "org.openapitools",
3+
organization := "com.onesignal",
44
name := "onesignal-java-client",
55
version := "5.2.0",
66
scalaVersion := "2.11.4",

gradle.properties

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,21 @@
44
# Gradle properties reference: https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties
55
# For example, uncomment below to build for Android
66
#target = android
7+
8+
# Maven Central Publishing Configuration
9+
# These properties are used for publishing to Maven Central
10+
# They can be overridden via command line arguments or environment variables
11+
12+
# Maven Central Portal credentials (override via -PmavenCentralUsername and -PmavenCentralPassword)
13+
mavenCentralUsername=
14+
mavenCentralPassword=
15+
16+
# GPG signing configuration (override via command line arguments)
17+
signing.keyId=
18+
signing.password=
19+
signing.secretKeyRingFile=
20+
21+
# Gradle publishing options
22+
org.gradle.parallel=true
23+
org.gradle.caching=true
24+

maven-push.gradle

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apply plugin: 'com.vanniktech.maven.publish'
2+
3+
mavenPublishing {
4+
publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.CENTRAL_PORTAL)
5+
signAllPublications()
6+
7+
coordinates("com.onesignal", "onesignal-java-client", project.version)
8+
9+
pom {
10+
name = 'onesignal-java-client'
11+
description = 'OneSignal'
12+
inceptionYear = '2022'
13+
url = 'https://github.com/OneSignal/onesignal-java-api'
14+
15+
licenses {
16+
license {
17+
name = 'MIT License'
18+
url = 'https://opensource.org/licenses/MIT'
19+
distribution = 'repo'
20+
}
21+
}
22+
23+
developers {
24+
developer {
25+
id = 'onesignal'
26+
name = 'OneSignal'
27+
email = 'support@onesignal.com'
28+
organization = 'OneSignal'
29+
organizationUrl = 'https://onesignal.com/'
30+
}
31+
}
32+
33+
scm {
34+
url = 'https://github.com/OneSignal/onesignal-java-api'
35+
connection = scm:git:git://github.com/OneSignal/onesignal-java-api.git
36+
developerConnection = scm:git:ssh://git@github.com/OneSignal/onesignal-java-api.git
37+
}
38+
}
39+
}

pom.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
33
<modelVersion>4.0.0</modelVersion>
4-
<groupId>org.openapitools</groupId>
4+
<groupId>com.onesignal</groupId>
55
<artifactId>onesignal-java-client</artifactId>
66
<packaging>jar</packaging>
77
<name>onesignal-java-client</name>
88
<version>5.2.0</version>
9-
<url>https://github.com/openapitools/openapi-generator</url>
10-
<description>OpenAPI Java</description>
9+
<url>https://github.com/OneSignal/onesignal-java-api</url>
10+
<description>OneSignal Java API Client</description>
1111
<scm>
12-
<connection>scm:git:git@github.com:openapitools/openapi-generator.git</connection>
13-
<developerConnection>scm:git:git@github.com:openapitools/openapi-generator.git</developerConnection>
14-
<url>https://github.com/openapitools/openapi-generator</url>
12+
<connection>scm:git:git://github.com/OneSignal/onesignal-java-api.git</connection>
13+
<developerConnection>scm:git:ssh://git@github.com/OneSignal/onesignal-java-api.git</developerConnection>
14+
<url>github.com/OneSignal/onesignal-java-api</url>
1515
</scm>
1616

1717
<licenses>
@@ -25,7 +25,7 @@
2525
<developers>
2626
<developer>
2727
<name>OneSignal</name>
28-
<email>team@openapitools.org</email>
28+
<email>support@onesignal.com</email>
2929
<organization>OneSignal</organization>
3030
<organizationUrl>https://onesignal.com/</organizationUrl>
3131
</developer>

0 commit comments

Comments
 (0)