Skip to content

Commit 6c22480

Browse files
authored
Merge pull request #122 from Parsely/migrate_to_maven_central
Migrate to Vanniktech's Gradle Maven Publish Plugin
2 parents d2c1896 + 7c59b30 commit 6c22480

File tree

6 files changed

+62
-112
lines changed

6 files changed

+62
-112
lines changed

.github/workflows/publish.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ jobs:
1717
with:
1818
java-version: '17'
1919
distribution: 'temurin'
20+
- name: Setup Gradle
21+
uses: gradle/actions/setup-gradle@v4
2022
- name: Build library
2123
run: ./gradlew :parsely:assembleDebug
2224
- name: Publish to Maven Central Repository
23-
run: ./gradlew :parsely:publishReleasePublicationToMavenCentralRepository --max-workers 1
25+
run: ./gradlew :parsely:publishToMavenCentral --max-workers 1
2426
env:
25-
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
26-
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
27-
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
28-
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
29-
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
27+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
28+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
29+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
30+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
31+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}

.github/workflows/readme.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
java-version: '17'
1717
distribution: 'temurin'
1818
- name: Setup Gradle
19-
uses: gradle/gradle-build-action@v2
19+
uses: gradle/actions/setup-gradle@v4
2020
- name: Validate binary compatibility
2121
run: ./gradlew apiCheck
2222
- name: Build library
@@ -33,19 +33,14 @@ jobs:
3333
with:
3434
files: parsely/build/reports/kover/reportDebug.xml
3535
token: ${{ secrets.CODECOV_TOKEN }}
36-
- name: Validate Maven publication
37-
run: ./gradlew :parsely:publishReleasePublicationToMavenLocal
36+
- name: Publish snapshot
37+
run: ./gradlew :parsely:publishToMavenCentral --max-workers 1
3838
env:
39-
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
40-
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
41-
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
42-
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
43-
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
44-
- name: Publish build artifacts
45-
uses: actions/upload-artifact@v4
46-
with:
47-
name: build-artifact
48-
path: ~/.m2/repository/com/parsely/parsely/*
39+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
40+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
41+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
42+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
43+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
4944
functional-tests:
5045
runs-on: ubuntu-latest
5146
steps:

.github/workflows/submit-gradle-dependencies.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,5 @@ jobs:
1212
with:
1313
distribution: 'temurin'
1414
java-version: '17'
15-
- name: Setup Gradle to generate and submit dependency graphs
16-
uses: gradle/gradle-build-action@v2
17-
with:
18-
dependency-graph: generate-and-submit
19-
- name: Generate the dependency graph which will be submitted post-job
20-
run: ./gradlew :parsely:dependencies
15+
- name: Generate and submit dependency graph
16+
uses: gradle/actions/dependency-submission@v4

parsely/build.gradle

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ plugins {
55
id 'org.jetbrains.kotlin.android'
66
id 'org.jetbrains.kotlinx.kover'
77
id 'org.jetbrains.kotlinx.binary-compatibility-validator'
8+
id 'com.vanniktech.maven.publish'
89
}
910

1011
ext {
@@ -41,14 +42,6 @@ android {
4142
exclude 'META-INF/LICENSE'
4243
exclude 'META-INF/NOTICE'
4344
}
44-
45-
publishing {
46-
singleVariant('release') {
47-
withSourcesJar()
48-
withJavadocJar()
49-
}
50-
}
51-
5245
testOptions {
5346
unitTests {
5447
includeAndroidResources = true
@@ -93,4 +86,45 @@ dependencies {
9386
androidTestUtil 'androidx.test:orchestrator:1.4.2'
9487
}
9588

96-
apply from: "${rootProject.projectDir}/publication.gradle"
89+
def static getVersionFromGitTag() {
90+
return 'git describe --abbrev=0 --tags'.execute().text.trim()
91+
}
92+
93+
def isTagBuild = System.getenv("GITHUB_REF_TYPE") == 'tag'
94+
95+
mavenPublishing {
96+
publishToMavenCentral(false)
97+
signAllPublications()
98+
99+
def version = "${getVersionFromGitTag()}${isTagBuild ? '' : '-SNAPSHOT'}"
100+
logger.lifecycle("Version: $version")
101+
102+
coordinates("com.parsely", "parsely", version)
103+
pom {
104+
name = 'Parse.ly Android SDK'
105+
description = 'The official Parse.ly Android toolkit'
106+
url = 'https://github.com/Parsely/parsely-android'
107+
licenses {
108+
license {
109+
name = 'Apache-2.0'
110+
url = 'https://github.com/Parsely/parsely-android/blob/master/COPYING'
111+
}
112+
}
113+
scm {
114+
connection = 'scm:git:github.com/Parsely/parsely-android.git'
115+
developerConnection = 'scm:git:ssh://github.com/Parsely/parsely-android.git'
116+
url = 'https://github.com/Parsely/parsely-android/tree/main'
117+
}
118+
developers {
119+
developer {
120+
id = 'wzieba'
121+
name = 'Wojtek Zieba'
122+
123+
}
124+
}
125+
organization {
126+
name = 'Parse.ly'
127+
url = 'https://www.parse.ly/'
128+
}
129+
}
130+
}

publication.gradle

Lines changed: 0 additions & 78 deletions
This file was deleted.

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pluginManagement {
77
id 'org.jetbrains.kotlin.android' version '1.9.10'
88
id 'org.jetbrains.kotlinx.kover' version '0.7.4'
99
id 'org.jetbrains.kotlinx.binary-compatibility-validator' version '0.14.0'
10+
id 'com.vanniktech.maven.publish' version '0.33.0'
1011
}
1112

1213
repositories {

0 commit comments

Comments
 (0)