Skip to content

Commit

Permalink
Merge pull request #23 from pseudoankit/publish-maven-central-v2
Browse files Browse the repository at this point in the history
Publish maven central via nexus plugin
  • Loading branch information
pseudoankit authored Jan 26, 2024
2 parents a68d040 + b64f00d commit 68f953a
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 82 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Publish

on:
release:
types: [ created ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Check
run: ./gradlew check --stacktrace

- name: Publish Artifact
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --max-workers=1 --stacktrace
env:
RELEASE_TAG_NAME: ${{ github.event.release.tag_name }}
OSS_USERNAME: ${{ secrets.OSS_USERNAME }}
OSS_PASSWORD: ${{ secrets.OSS_PASSWORD }}
OSS_STAGING_PROFILE_ID: ${{ secrets.OSS_STAGING_PROFILE_ID }}
OSS_SIGNING_KEY_ID: ${{ secrets.OSS_SIGNING_KEY_ID }}
OSS_SIGNING_PASSWORD: ${{ secrets.OSS_SIGNING_PASSWORD }}
OSS_SIGNING_KEY: ${{ secrets.OSS_SIGNING_KEY }}
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dependencies {
implementation('org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0')
}

implementation 'io.github.pseudoankit:coachmark:1.0.2'
implementation 'io.github.pseudoankit:coachmark:1.0.3'
implementation 'androidx.activity:activity-compose:1.7.2'
implementation platform('androidx.compose:compose-bom:2022.10.00')
implementation 'androidx.compose.ui:ui'
Expand Down
14 changes: 14 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,18 @@ plugins {
id 'com.android.application' version '8.0.1' apply false
id 'com.android.library' version '8.0.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
id 'io.github.gradle-nexus.publish-plugin' version '1.1.0'
}

nexusPublishing {
repositories {
sonatype {
username = System.getenv("OSS_USERNAME")
password = System.getenv("OSS_PASSWORD")
stagingProfileId = System.getenv("OSS_STAGING_PROFILE_ID")

nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
}
}
}
110 changes: 29 additions & 81 deletions gradle/publish-package.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,46 @@ apply plugin: 'signing'

ext {
GROUP_ID = "io.github.pseudoankit"
VERSION_NAME = "1.0.3"
VERSION = (System.getenv("RELEASE_TAG_NAME") ?: "SNAPSHOT").replace("v", "")

POM_DESCRIPTION = "Compose library to add coachmark"
POM_URL = "https://github.com/pseudoankit/coachmark"
POM_SCM_CONNECTION = "scm:[email protected]:pseudoankit/coachmark.git"

OSS_USERNAME = System.getenv("OSS_USERNAME")
OSS_PASSWORD = System.getenv("OSS_PASSWORD")
SITE_URL = 'https://github.com/pseudoankit/coachmark'
GIT_URL = 'https://github.com/pseudoankit/coachmark.git'

POM_DESCRIPTION = "Compose library to add coachmark"
POM_URL = SITE_URL
}

signing {
useInMemoryPgpKeys(
System.getenv("SIGNING_KEY_ID"),
System.getenv("SIGNING_KEY"),
System.getenv("SIGNING_PASSWORD"),
System.getenv("OSS_SIGNING_KEY_ID"),
System.getenv("OSS_SIGNING_KEY"),
System.getenv("OSS_SIGNING_PASSWORD"),
)
sign publishing.publications
}

// If you want to publish your sources as well
task androidSourcesJar(type: Jar) {
archiveClassifier.set('sources')
from android.sourceSets.main.java.srcDirs
from android.sourceSets.main.kotlin.srcDirs
}

artifacts {
archives androidSourcesJar
}

afterEvaluate {
publishing {
publications {
release(MavenPublication) {

from components.release

groupId GROUP_ID
artifactId ARTIFACT_ID
version VERSION_NAME
version VERSION

from components.release
artifact androidSourcesJar

pom {
name = ARTIFACT_ID
Expand All @@ -44,85 +54,23 @@ afterEvaluate {
url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
}
}
scm {
connection = POM_SCM_CONNECTION
developerConnection = POM_SCM_CONNECTION
url = POM_URL
}

developers {
developer {
id = 'pseudoankit'
name = 'Ankit Kumar'
email = '[email protected]'
}
}
}
}
}
repositories {
maven {
name = "SonatypeSnapshot"

// def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
// def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
// url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
url = "https://s01.oss.sonatype.org/content/repositories/snapshots/"

credentials {
username OSS_USERNAME
password OSS_PASSWORD
}
}

maven {
name = "sonatype"

// def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
// def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
// url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
url = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"

credentials {
username OSS_USERNAME
password OSS_PASSWORD
scm {
connection = GIT_URL
developerConnection = GIT_URL
url = SITE_URL
}
}
}
}
}
}

task androidJavadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
android.libraryVariants.all { variant ->
if (variant.name == 'release') {
owner.classpath += variant.javaCompileProvider.get().classpath
}
}

exclude '**/R.html', '**/R.*.html', '**/index.html'
options.encoding 'utf-8'
options {
addStringOption 'docencoding', 'utf-8'
addStringOption 'charset', 'utf-8'
links 'https://docs.oracle.com/javase/7/docs/api/'
links 'https://d.android.com/reference'
links 'https://developer.android.com/reference/androidx/'
}
}

task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
archiveClassifier.set('javadoc')
from androidJavadoc.destinationDir

preserveFileTimestamps = false
reproducibleFileOrder = true
}

task javaSourcesJar(type: Jar) {
archiveClassifier.set('sources')
from android.sourceSets.main.java.srcDirs

preserveFileTimestamps = false
reproducibleFileOrder = true
}

0 comments on commit 68f953a

Please sign in to comment.