Skip to content

Commit

Permalink
Merge pull request #473 from skydoves/migrate/nexus-plugin
Browse files Browse the repository at this point in the history
Migrate nexus maven publication plugin
  • Loading branch information
skydoves authored Aug 26, 2023
2 parents 82d9ec6 + 0939fdc commit bdcd80a
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 173 deletions.
26 changes: 15 additions & 11 deletions .github/workflows/publish-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,26 @@ jobs:
steps:
- name: Check out code
uses: actions/checkout@v3.1.0

- name: Set up JDK 17
uses: actions/setup-java@v3.5.1
with:
distribution: adopt
distribution: 'zulu'
java-version: 17

- name: Grant Permission to Execute Gradle
run: chmod +x gradlew

- name: Release build
run: ./gradlew assemble --scan
- name: Source jar and dokka
run: ./gradlew androidSourcesJar javadocJar --scan
run: ./gradlew assemble --scan -x :benchmark:pixel6api31Setup -x :benchmark:pixel6api31NonMinifiedReleaseAndroidTest -x :benchmark:collectNonMinifiedReleaseBaselineProfile

- name: Publish to MavenCentral
run: ./gradlew publishReleasePublicationToSonatypeRepository --scan
run: |
./gradlew publishAllPublicationsToMavenCentral --no-daemon --no-parallel
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
SNAPSHOT: true
31 changes: 18 additions & 13 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,35 @@ name: Publish

on:
release:
types: [released]
types: [ released ]
workflow_dispatch:

jobs:
publish:
name: Release build and publish
name: Snapshot build and publish
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3.1.0

- name: Set up JDK 17
uses: actions/setup-java@v3.5.1
with:
distribution: adopt
distribution: 'zulu'
java-version: 17

- name: Grant Permission to Execute Gradle
run: chmod +x gradlew

- name: Release build
run: ./gradlew assemble --scan
- name: Source jar and dokka
run: ./gradlew androidSourcesJar javadocJar --scan
run: ./gradlew assemble --scan -x :benchmark:pixel6api31Setup -x :benchmark:pixel6api31NonMinifiedReleaseAndroidTest -x :benchmark:collectNonMinifiedReleaseBaselineProfile

- name: Publish to MavenCentral
run: ./gradlew publishReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository --scan
run: |
./gradlew publishAllPublicationsToMavenCentral --no-configuration-cache
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
21 changes: 15 additions & 6 deletions balloon-compose/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,24 @@ import com.skydoves.balloon.Configuration
plugins {
id(libs.plugins.android.library.get().pluginId)
id(libs.plugins.kotlin.android.get().pluginId)
id(libs.plugins.nexus.plugin.get().pluginId)
}

rootProject.extra.apply {
set("PUBLISH_GROUP_ID", Configuration.artifactGroup)
set("PUBLISH_ARTIFACT_ID", "balloon-compose")
set("PUBLISH_VERSION", rootProject.extra.get("rootVersionName"))
}
apply(from = "${rootDir}/scripts/publish-module.gradle.kts")

mavenPublishing {
val artifactId = "balloon-compose"
coordinates(
Configuration.artifactGroup,
artifactId,
rootProject.extra.get("libVersion").toString()
)

apply(from ="${rootDir}/scripts/publish-module.gradle")
pom {
name.set(artifactId)
description.set("Modernized and sophisticated tooltips, fully customizable with an arrow and animations for Android.")
}
}

android {
compileSdk = Configuration.compileSdk
Expand Down
21 changes: 15 additions & 6 deletions balloon/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,24 @@ import com.skydoves.balloon.Configuration
plugins {
id(libs.plugins.android.library.get().pluginId)
id(libs.plugins.kotlin.android.get().pluginId)
id(libs.plugins.nexus.plugin.get().pluginId)
}

rootProject.extra.apply {
set("PUBLISH_GROUP_ID", Configuration.artifactGroup)
set("PUBLISH_ARTIFACT_ID", "balloon")
set("PUBLISH_VERSION", rootProject.extra.get("rootVersionName"))
}
apply(from = "${rootDir}/scripts/publish-module.gradle.kts")

mavenPublishing {
val artifactId = "balloon"
coordinates(
Configuration.artifactGroup,
artifactId,
rootProject.extra.get("libVersion").toString()
)

apply(from ="${rootDir}/scripts/publish-module.gradle")
pom {
name.set(artifactId)
description.set("Modernized and sophisticated tooltips, fully customizable with an arrow and animations for Android.")
}
}

android {
compileSdk = Configuration.compileSdk
Expand Down
2 changes: 0 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ plugins {
alias(libs.plugins.kotlin.binary.compatibility)
}

apply(from = "${rootDir}/scripts/publish-root.gradle")

apiValidation {
ignoredProjects.addAll(listOf("app", "benchmark-app"))
ignoredPackages.add("com/skydoves/balloon/databinding")
Expand Down
21 changes: 20 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,23 @@ android.defaults.buildfeatures.shaders=false
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
# https://developer.android.com/studio/releases/gradle-plugin#4.1-nontransitive-r-class
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true

# Maven publication
POM_URL=https://github.com/skydoves/balloon/
POM_SCM_URL=https://github.com/skydoves/balloon/
POM_SCM_CONNECTION=scm:git:git://github.com/skydoves/balloon.git
POM_SCM_DEV_CONNECTION=scm:git:git://github.com/skydoves/balloon.git

POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo

POM_DEVELOPER_ID=skydoves
POM_DEVELOPER_NAME=Jaewoong Eum
POM_DEVELOPER_URL=https://github.com/skydoves/
POM_DEVELOPER_EMAIL=skydoves2@gmail.com

SONATYPE_HOST=DEFAULT
RELEASE_SIGNING_ENABLED=true
SONATYPE_AUTOMATIC_RELEASE=true
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[versions]
agp = "8.1.0"
dokka = "1.8.20"
nexusPlugin = "1.3.0"
kotlin = "1.9.0"
kotlinBinaryCompatibility = "0.13.2"
jvmTarget = "11"
nexusPlugin = "0.25.3"
androidxComposeBom = "2023.08.00"
androidxComposeCompiler = "1.5.1"
androidxComposeConstraintLayout = "1.0.1"
Expand All @@ -25,8 +25,8 @@ android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
android-test = { id = "com.android.test", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
nexus-plugin = { id = "com.vanniktech.maven.publish", version.ref = "nexusPlugin" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
nexus-plugin = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPlugin" }
kotlin-binary-compatibility = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinBinaryCompatibility" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }

Expand Down
87 changes: 0 additions & 87 deletions scripts/publish-module.gradle

This file was deleted.

13 changes: 13 additions & 0 deletions scripts/publish-module.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import com.skydoves.balloon.Configuration

apply(plugin = "com.vanniktech.maven.publish")

rootProject.extra.apply {
val snapshot = System.getenv("SNAPSHOT").toBoolean()
val libVersion = if (snapshot) {
Configuration.snapshotVersionName
} else {
Configuration.versionName
}
set("libVersion", libVersion)
}
45 changes: 0 additions & 45 deletions scripts/publish-root.gradle

This file was deleted.

0 comments on commit bdcd80a

Please sign in to comment.