From 57d127ef1178fddf4b823222a822074e9266182a Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Thu, 7 Aug 2025 13:22:01 +0200 Subject: [PATCH 1/7] added publish2sonatype workflow --- .github/workflows/publish2sonatype.yml | 41 ++++++++++++++++++++++++++ sift/maven-push.gradle | 4 +-- 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish2sonatype.yml diff --git a/.github/workflows/publish2sonatype.yml b/.github/workflows/publish2sonatype.yml new file mode 100644 index 0000000..77935e4 --- /dev/null +++ b/.github/workflows/publish2sonatype.yml @@ -0,0 +1,41 @@ +name: Publishing to Sonatype +on: + push: +# release: +# types: [published] + +env: + GH_TOKEN: ${{ github.token }} + +jobs: + build_and_publish: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8.0.362' + distribution: 'zulu' + - name: Prepare gradle.properties + run: | + cd sift + echo "$(pwd)" + echo -e "${{ secrets.SECRING }}" | base64 -d > ./secring.gpg + echo "$(ls -la)" + echo "signing.keyId=${{ secrets.KEYID }}" >> ./gradle.properties + echo "signing.password=${{ secrets.PASS }}" >> ./gradle.properties + echo "signing.secretKeyRingFile=$(pwd)/secring.gpg" >> ./gradle.properties + echo "NEXUS_USERNAME=${{ secrets.SUSER }}" >> ./gradle.properties + echo "NEXUS_PASSWORD=${{ secrets.SPASSWORD }}" >> ./gradle.properties + echo "$(ls -la)" + - name: Sonatype Publish + run: | + cd sift + ./gradlew uploadArchives + BEARER=$(printf "${{ secrets.SUSER }}:${{ secrets.SPASSWORD }}" | base64) + curl --request POST \ + --verbose \ + --header "Authorization: Bearer ${BEARER}" \ + https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/${{ secrets.SREPO_ID }} diff --git a/sift/maven-push.gradle b/sift/maven-push.gradle index 9f186cf..24ebd94 100644 --- a/sift/maven-push.gradle +++ b/sift/maven-push.gradle @@ -23,12 +23,12 @@ def isReleaseBuild() { def getReleaseRepositoryUrl() { return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL - : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" + : "https://ossrh-staging-api.central.sonatype.com/service/local/" } def getSnapshotRepositoryUrl() { return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL - : "https://oss.sonatype.org/content/repositories/snapshots/" + : "https://central.sonatype.com/repository/maven-snapshots/" } def getRepositoryUsername() { From fa7e5573396406f21e15e0645b7e923bc8f5da57 Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Thu, 7 Aug 2025 13:23:42 +0200 Subject: [PATCH 2/7] updated sonatype publish job --- .github/workflows/publish2sonatype.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish2sonatype.yml b/.github/workflows/publish2sonatype.yml index 77935e4..a51232f 100644 --- a/.github/workflows/publish2sonatype.yml +++ b/.github/workflows/publish2sonatype.yml @@ -32,7 +32,6 @@ jobs: echo "$(ls -la)" - name: Sonatype Publish run: | - cd sift ./gradlew uploadArchives BEARER=$(printf "${{ secrets.SUSER }}:${{ secrets.SPASSWORD }}" | base64) curl --request POST \ From 8d95abb998c3494336e02d1630635b9e262274ab Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Thu, 7 Aug 2025 14:01:20 +0200 Subject: [PATCH 3/7] updated maven-push gradle job --- sift/maven-push.gradle | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/sift/maven-push.gradle b/sift/maven-push.gradle index 24ebd94..ea4535f 100644 --- a/sift/maven-push.gradle +++ b/sift/maven-push.gradle @@ -17,19 +17,19 @@ apply plugin: 'maven' apply plugin: 'signing' -def isReleaseBuild() { - return VERSION_NAME.contains("SNAPSHOT") == false -} +// def isReleaseBuild() { +// return VERSION_NAME.contains("SNAPSHOT") == false +// } def getReleaseRepositoryUrl() { return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL - : "https://ossrh-staging-api.central.sonatype.com/service/local/" + : "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/" } -def getSnapshotRepositoryUrl() { - return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL - : "https://central.sonatype.com/repository/maven-snapshots/" -} +// def getSnapshotRepositoryUrl() { +// return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL +// : "https://central.sonatype.com/repository/maven-snapshots/" +// } def getRepositoryUsername() { return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "" @@ -52,9 +52,9 @@ afterEvaluate { project -> repository(url: getReleaseRepositoryUrl()) { authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) } - snapshotRepository(url: getSnapshotRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) - } +// snapshotRepository(url: getSnapshotRepositoryUrl()) { +// authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) +// } pom.project { name POM_NAME @@ -88,7 +88,8 @@ afterEvaluate { project -> } signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } +// required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } + required { gradle.taskGraph.hasTask("uploadArchives") } sign configurations.archives } From e5ddcb7427b95fe0d4aaae4ed80b525d16f73866 Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Thu, 7 Aug 2025 14:17:31 +0200 Subject: [PATCH 4/7] test Sonatype release with updated version --- gradle.properties | 2 +- sift/maven-push.gradle | 22 ---------------------- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/gradle.properties b/gradle.properties index 6a48bc5..187fd61 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -VERSION_NAME=1.3.0 +VERSION_NAME=1.3.1 VERSION_CODE=25 GROUP=com.siftscience diff --git a/sift/maven-push.gradle b/sift/maven-push.gradle index ea4535f..7d9aada 100644 --- a/sift/maven-push.gradle +++ b/sift/maven-push.gradle @@ -17,20 +17,11 @@ apply plugin: 'maven' apply plugin: 'signing' -// def isReleaseBuild() { -// return VERSION_NAME.contains("SNAPSHOT") == false -// } - def getReleaseRepositoryUrl() { return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL : "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/" } -// def getSnapshotRepositoryUrl() { -// return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL -// : "https://central.sonatype.com/repository/maven-snapshots/" -// } - def getRepositoryUsername() { return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "" } @@ -52,9 +43,6 @@ afterEvaluate { project -> repository(url: getReleaseRepositoryUrl()) { authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) } -// snapshotRepository(url: getSnapshotRepositoryUrl()) { -// authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) -// } pom.project { name POM_NAME @@ -88,20 +76,10 @@ afterEvaluate { project -> } signing { -// required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } required { gradle.taskGraph.hasTask("uploadArchives") } sign configurations.archives } - //task androidJavadocs(type: Javadoc) { - //source = android.sourceSets.main.allJava - //} - - //task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { - //classifier = 'javadoc' - //from androidJavadocs.destinationDir - //} - task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles From 43ca0eb5b85bdc8f5279421c78e1468c0f98de7b Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Thu, 7 Aug 2025 14:23:36 +0200 Subject: [PATCH 5/7] publish2sonatype switched to on-release, version_name reverted --- .github/workflows/publish2sonatype.yml | 5 ++--- gradle.properties | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish2sonatype.yml b/.github/workflows/publish2sonatype.yml index a51232f..d801a76 100644 --- a/.github/workflows/publish2sonatype.yml +++ b/.github/workflows/publish2sonatype.yml @@ -1,8 +1,7 @@ name: Publishing to Sonatype on: - push: -# release: -# types: [published] + release: + types: [published] env: GH_TOKEN: ${{ github.token }} diff --git a/gradle.properties b/gradle.properties index 187fd61..6a48bc5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -VERSION_NAME=1.3.1 +VERSION_NAME=1.3.0 VERSION_CODE=25 GROUP=com.siftscience From e0897006713ddf6ff8bcb8e1b34d2e31d7482818 Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Wed, 13 Aug 2025 15:25:01 +0200 Subject: [PATCH 6/7] publish2sonatype test with javaDoc tasks enabled --- .github/workflows/publish2sonatype.yml | 5 +++-- sift/maven-push.gradle | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish2sonatype.yml b/.github/workflows/publish2sonatype.yml index d801a76..a51232f 100644 --- a/.github/workflows/publish2sonatype.yml +++ b/.github/workflows/publish2sonatype.yml @@ -1,7 +1,8 @@ name: Publishing to Sonatype on: - release: - types: [published] + push: +# release: +# types: [published] env: GH_TOKEN: ${{ github.token }} diff --git a/sift/maven-push.gradle b/sift/maven-push.gradle index 7d9aada..2f987b3 100644 --- a/sift/maven-push.gradle +++ b/sift/maven-push.gradle @@ -80,6 +80,21 @@ afterEvaluate { project -> sign configurations.archives } + tasks.withType(Javadoc) { + failOnError false + options.addStringOption('encoding', 'UTF-8') + options.addStringOption('charSet', 'UTF-8') + } + + task androidJavadocs(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + } + + task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { + classifier = 'javadoc' + from androidJavadocs.destinationDir + } + task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles @@ -89,3 +104,4 @@ afterEvaluate { project -> archives androidSourcesJar } } + From e7d7e8030fcd781ba0652e1258d630ebf188b8e6 Mon Sep 17 00:00:00 2001 From: Alexey Havrilyuk Date: Wed, 13 Aug 2025 15:30:34 +0200 Subject: [PATCH 7/7] javaDoc tasks removed from maven-push.gradle since they are not called by publishing process --- .github/workflows/publish2sonatype.yml | 5 ++--- sift/maven-push.gradle | 15 --------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/workflows/publish2sonatype.yml b/.github/workflows/publish2sonatype.yml index a51232f..d801a76 100644 --- a/.github/workflows/publish2sonatype.yml +++ b/.github/workflows/publish2sonatype.yml @@ -1,8 +1,7 @@ name: Publishing to Sonatype on: - push: -# release: -# types: [published] + release: + types: [published] env: GH_TOKEN: ${{ github.token }} diff --git a/sift/maven-push.gradle b/sift/maven-push.gradle index 2f987b3..ea75fea 100644 --- a/sift/maven-push.gradle +++ b/sift/maven-push.gradle @@ -80,21 +80,6 @@ afterEvaluate { project -> sign configurations.archives } - tasks.withType(Javadoc) { - failOnError false - options.addStringOption('encoding', 'UTF-8') - options.addStringOption('charSet', 'UTF-8') - } - - task androidJavadocs(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - } - - task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { - classifier = 'javadoc' - from androidJavadocs.destinationDir - } - task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles