From b799d94d09d895a166099cb35c9aab246e8bedb5 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:16:58 -0600 Subject: [PATCH 01/24] publish with jreleaser wip --- .github/workflows/publish-sdk.yaml | 12 +++++-- .github/workflows/publish-snapshot.yml | 6 ++-- eppo/build.gradle | 43 ++++++++++++++++++++------ 3 files changed, 46 insertions(+), 15 deletions(-) diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index 679b4d52..5da75c26 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -6,8 +6,8 @@ on: env: ANDROID_API_LEVEL: 33 - ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }} - ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }} + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} CI: true jobs: @@ -18,6 +18,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Set up JDK 17 uses: actions/setup-java@v4 @@ -38,3 +40,9 @@ jobs: env: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + - name: Deploy to Maven Central + run: ./gradlew jreleaserDeploy + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 0b37fee9..014850e8 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -2,11 +2,11 @@ name: Publish SDK Snapshot artifact on: push: - branches: [main] + branches: [main, tp/*] env: - ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }} - ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }} + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} CI: true jobs: diff --git a/eppo/build.gradle b/eppo/build.gradle index e9096b6e..ea166f3c 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -2,7 +2,7 @@ plugins { id 'com.android.library' id 'maven-publish' id "com.vanniktech.maven.publish" version "0.31.0" - id 'signing' + id 'org.jreleaser' version '1.18.0' id "com.diffplug.spotless" version "7.0.3" } @@ -104,15 +104,6 @@ spotless { } } -signing { - if (System.getenv("GPG_PRIVATE_KEY") && System.getenv("GPG_PASSPHRASE")) { - // Use in-memory keys for CI builds - useInMemoryPgpKeys(System.env.GPG_PRIVATE_KEY, System.env.GPG_PASSPHRASE) - } - - sign publishing.publications // Sign all Maven publications -} - // Make sure signing tasks only run if configured correctly tasks.withType(Sign) { onlyIf { @@ -152,6 +143,38 @@ mavenPublishing { } } +jreleaser { + signing { + active = 'ALWAYS' + armored = true + verify = false + } + deploy { + maven { + mavenCentral { + 'release-deploy' { + active = 'RELEASE' + url = 'https://central.sonatype.com/api/v1/publisher' + stagingRepository('build/staging-deploy') + } + } + nexus2 { + 'snapshot-deploy' { + active = 'SNAPSHOT' + snapshotUrl = 'https://central.sonatype.com/repository/maven-snapshots' + url = 'https://central.sonatype.com/repository/maven-snapshots' + applyMavenCentralRules = true + snapshotSupported = true + closeRepository = true + releaseRepository = true + stagingRepository('build/staging-deploy') + } + } + } + } +} + + // Custom task to ensure we can conditionally publish either a release or snapshot artifact // based on a command line switch. See github workflow files for more details on usage. task checkVersion { From 6dfb08319e19a5f0acf55d250f4f01ce6b20d81c Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:19:19 -0600 Subject: [PATCH 02/24] fix vars --- .github/workflows/publish-sdk.yaml | 4 ++-- .github/workflows/publish-snapshot.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index 5da75c26..1ea938b4 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -6,8 +6,8 @@ on: env: ANDROID_API_LEVEL: 33 - MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} CI: true jobs: diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 014850e8..3c991f1b 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -5,8 +5,8 @@ on: branches: [main, tp/*] env: - MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} CI: true jobs: From f62179879d7aac775be4f5b8a568a1de87a356c5 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:21:52 -0600 Subject: [PATCH 03/24] really fix vars --- .github/workflows/publish-sdk.yaml | 11 +++++++++-- .github/workflows/publish-snapshot.yml | 12 ++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index 1ea938b4..f94be333 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -6,14 +6,21 @@ on: env: ANDROID_API_LEVEL: 33 - MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} CI: true jobs: test: uses: ./.github/workflows/test.yaml publish: + env: + JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + JRELEASER_NEXUS2_SNAPSHOT_DEPLOY_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + JRELEASER_NEXUS2_SNAPSHOT_DEPLOY_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} + JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} needs: test runs-on: ubuntu-latest steps: diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 3c991f1b..e4b38ee5 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -5,12 +5,20 @@ on: branches: [main, tp/*] env: - MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + CI: true jobs: publish-snapshot: + env: + JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + JRELEASER_NEXUS2_SNAPSHOT_DEPLOY_USERNAME: ${{ secrets.MAVEN_CENTRAL_TOKEN_USERNAME }} + JRELEASER_NEXUS2_SNAPSHOT_DEPLOY_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN_PASSWORD }} + JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} + JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 473ad4a9177fbc05da036484808b48599aa39050 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:38:30 -0600 Subject: [PATCH 04/24] try again --- .github/workflows/publish-snapshot.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index e4b38ee5..c5a7c758 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -33,8 +33,11 @@ jobs: gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} - - name: Publish Snapshot artifact - run: ./gradlew eppo:assemble eppo:publish -Psnapshot --no-daemon - env: - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + - name: Test + run: ./gradlew eppo:check + + - name: Stage artifacts + run: ./gradlew eppo:clean eppo:publish -Prelease + + - name: Deploy to Maven Central + run: ./gradlew eppo:jreleaserDeploy From 5c048e5a8f5c774718c6361d6751de9c156dbb37 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:48:50 -0600 Subject: [PATCH 05/24] fix publishing struct --- eppo/build.gradle | 49 +++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index ea166f3c..59efd0a2 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -114,33 +114,36 @@ tasks.withType(Sign) { } } -mavenPublishing { - publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.S01) - signAllPublications() - coordinates("cloud.eppo", "android-sdk", project.version) - - pom { - name = 'Eppo Android' - description = 'Eppo Android SDK' - url = 'https://github.com/Eppo-exp/android-sdk' - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/mit-license.php' +publishing { + publications { + maven(MavenPublication) { + groupId = 'cloud.eppo' + artifactId = 'eppo-server-sdk' + + pom { + name = 'Eppo Android' + description = 'Eppo Android SDK' + url = 'https://github.com/Eppo-exp/android-sdk' + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/mit-license.php' + } } - } - developers { - developer { - name = 'Eppo' - email = 'https://www.geteppo.com' + developers { + developer { + name = 'Eppo' + email = 'https://www.geteppo.com' + } + } + scm { + connection = 'scm:git:git://github.com/Eppo-exp/android-sdk.git' + developerConnection = 'scm:git:ssh://github.com/Eppo-exp/android-sdk.git' + url = 'https://github.com/Eppo-exp/android-sdk/tree/main' } - } - scm { - connection = 'scm:git:git://github.com/Eppo-exp/android-sdk.git' - developerConnection = 'scm:git:ssh://github.com/Eppo-exp/android-sdk.git' - url = 'https://github.com/Eppo-exp/android-sdk/tree/main' } } + } } jreleaser { From 3f054cb1ddde26286da578511496dbd0ec37473b Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:53:33 -0600 Subject: [PATCH 06/24] remove vannitek publisher --- eppo/build.gradle | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 59efd0a2..c2c1c75d 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -1,7 +1,6 @@ plugins { id 'com.android.library' id 'maven-publish' - id "com.vanniktech.maven.publish" version "0.31.0" id 'org.jreleaser' version '1.18.0' id "com.diffplug.spotless" version "7.0.3" } @@ -104,16 +103,6 @@ spotless { } } -// Make sure signing tasks only run if configured correctly -tasks.withType(Sign) { - onlyIf { - (System.getenv("GPG_PRIVATE_KEY") && System.getenv("GPG_PASSPHRASE")) || - (project.hasProperty('signing.keyId') && - project.hasProperty('signing.password') && - project.hasProperty('signing.secretKeyRingFile')) - } -} - publishing { publications { maven(MavenPublication) { @@ -199,10 +188,3 @@ task checkVersion { tasks.named('publish').configure { dependsOn checkVersion } - -// Conditionally enable or disable publishing tasks -tasks.withType(PublishToMavenRepository) { - onlyIf { - project.ext.has('shouldPublish') && project.ext.shouldPublish - } -} From e75fe64a5a953e2ec0d16894f5786715fbf7e78c Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 09:55:46 -0600 Subject: [PATCH 07/24] snap --- .github/workflows/publish-snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index c5a7c758..9da98464 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -37,7 +37,7 @@ jobs: run: ./gradlew eppo:check - name: Stage artifacts - run: ./gradlew eppo:clean eppo:publish -Prelease + run: ./gradlew eppo:clean eppo:publish -Psnapshot - name: Deploy to Maven Central run: ./gradlew eppo:jreleaserDeploy From b80827025dd646f4b370e28f4f4304a37acca209 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 10:08:10 -0600 Subject: [PATCH 08/24] maven repo layout --- eppo/build.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eppo/build.gradle b/eppo/build.gradle index c2c1c75d..f9602f2e 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -133,8 +133,15 @@ publishing { } } } + + repositories { + maven { + url = layout.buildDirectory.dir('staging-deploy') + } + } } + jreleaser { signing { active = 'ALWAYS' From b9e94d335eeee0361fa116480c7577ccc133de84 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 10:13:20 -0600 Subject: [PATCH 09/24] try again --- eppo/build.gradle | 6 ------ 1 file changed, 6 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index f9602f2e..63c0900e 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -133,12 +133,6 @@ publishing { } } } - - repositories { - maven { - url = layout.buildDirectory.dir('staging-deploy') - } - } } From 56f694de9472669b1c9a46857145945251678933 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 10:23:39 -0600 Subject: [PATCH 10/24] updated configs --- .github/workflows/publish-sdk.yaml | 2 +- .github/workflows/publish-snapshot.yml | 2 +- eppo/build.gradle | 76 +++++++++++++++++--------- 3 files changed, 53 insertions(+), 27 deletions(-) diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index f94be333..4694aab1 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -43,7 +43,7 @@ jobs: echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV - name: Publish Release artifact - run: ./gradlew eppo:assemble eppo:publish -Prelease --no-daemon + run: ./gradlew eppo:assemble eppo:publishReleasePublicationToStagingRepository -Prelease --no-daemon env: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 9da98464..a1d1125b 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -37,7 +37,7 @@ jobs: run: ./gradlew eppo:check - name: Stage artifacts - run: ./gradlew eppo:clean eppo:publish -Psnapshot + run: ./gradlew eppo:clean eppo:publishReleasePublicationToStagingRepository -Psnapshot - name: Deploy to Maven Central run: ./gradlew eppo:jreleaserDeploy diff --git a/eppo/build.gradle b/eppo/build.gradle index 63c0900e..ec38b11f 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -49,6 +49,13 @@ android { excludes += "META-INF/**" } } + + publishing { + singleVariant('release') { + withSourcesJar() + withJavadocJar() + } + } } ext {} @@ -105,32 +112,44 @@ spotless { publishing { publications { - maven(MavenPublication) { + release(MavenPublication) { groupId = 'cloud.eppo' - artifactId = 'eppo-server-sdk' - - pom { - name = 'Eppo Android' - description = 'Eppo Android SDK' - url = 'https://github.com/Eppo-exp/android-sdk' - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/mit-license.php' - } - } - developers { - developer { - name = 'Eppo' - email = 'https://www.geteppo.com' - } - } - scm { - connection = 'scm:git:git://github.com/Eppo-exp/android-sdk.git' - developerConnection = 'scm:git:ssh://github.com/Eppo-exp/android-sdk.git' - url = 'https://github.com/Eppo-exp/android-sdk/tree/main' - } + artifactId = 'android-sdk' + version = project.version + + afterEvaluate { + from components.release + } + + pom { + name = 'Eppo Android' + description = 'Eppo Android SDK' + url = 'https://github.com/Eppo-exp/android-sdk' + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/mit-license.php' + } } + developers { + developer { + name = 'Eppo' + email = 'https://www.geteppo.com' + } + } + scm { + connection = 'scm:git:git://github.com/Eppo-exp/android-sdk.git' + developerConnection = 'scm:git:ssh://github.com/Eppo-exp/android-sdk.git' + url = 'https://github.com/Eppo-exp/android-sdk/tree/main' + } + } + } + } + + repositories { + maven { + name = 'staging' + url = layout.buildDirectory.dir('staging-deploy') } } } @@ -186,6 +205,13 @@ task checkVersion { } // Ensure checkVersion runs before publishing -tasks.named('publish').configure { +tasks.named('publishReleasePublicationToStagingRepository').configure { dependsOn checkVersion } + +// Conditionally enable or disable publishing tasks +tasks.withType(PublishToMavenRepository) { + onlyIf { + project.ext.has('shouldPublish') && project.ext.shouldPublish + } +} From 18efe83c90fd2fcc123dcda977ed8c76051975c7 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 10:36:17 -0600 Subject: [PATCH 11/24] spotless --- eppo/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index ec38b11f..a2348477 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -49,7 +49,7 @@ android { excludes += "META-INF/**" } } - + publishing { singleVariant('release') { withSourcesJar() @@ -116,7 +116,7 @@ publishing { groupId = 'cloud.eppo' artifactId = 'android-sdk' version = project.version - + afterEvaluate { from components.release } @@ -145,7 +145,7 @@ publishing { } } } - + repositories { maven { name = 'staging' From 677c0c99852fc13a94e7fdf9ada642ad2a078e4f Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 11:08:29 -0600 Subject: [PATCH 12/24] publish task --- .github/workflows/publish-sdk.yaml | 14 +++++--------- .github/workflows/publish-snapshot.yml | 6 ++++-- eppo/build.gradle | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-sdk.yaml b/.github/workflows/publish-sdk.yaml index 4694aab1..0f1b50ac 100644 --- a/.github/workflows/publish-sdk.yaml +++ b/.github/workflows/publish-sdk.yaml @@ -20,7 +20,9 @@ jobs: JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} needs: test runs-on: ubuntu-latest steps: @@ -43,13 +45,7 @@ jobs: echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV - name: Publish Release artifact - run: ./gradlew eppo:assemble eppo:publishReleasePublicationToStagingRepository -Prelease --no-daemon - env: - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + run: ./gradlew eppo:assemble eppo:publish -Prelease --no-daemon - name: Deploy to Maven Central - run: ./gradlew jreleaserDeploy - env: - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + run: ./gradlew jreleaserDeploy \ No newline at end of file diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index a1d1125b..b7ea320b 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -18,7 +18,9 @@ jobs: JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }} - JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -37,7 +39,7 @@ jobs: run: ./gradlew eppo:check - name: Stage artifacts - run: ./gradlew eppo:clean eppo:publishReleasePublicationToStagingRepository -Psnapshot + run: ./gradlew eppo:clean eppo:publish -Psnapshot - name: Deploy to Maven Central run: ./gradlew eppo:jreleaserDeploy diff --git a/eppo/build.gradle b/eppo/build.gradle index a2348477..d38432f5 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -205,7 +205,7 @@ task checkVersion { } // Ensure checkVersion runs before publishing -tasks.named('publishReleasePublicationToStagingRepository').configure { +tasks.named('publish').configure { dependsOn checkVersion } From b23b69716cad04ffcdf9194ddb5b3973a4573618 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 11:15:03 -0600 Subject: [PATCH 13/24] upload artifacts --- .github/workflows/publish-snapshot.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index b7ea320b..65d9b2fa 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -43,3 +43,17 @@ jobs: - name: Deploy to Maven Central run: ./gradlew eppo:jreleaserDeploy + + - name: Upload build artifacts and logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: build-logs-and-artifacts-${{ github.run_number }} + path: | + build/reports/problems/** + eppo/build/reports/** + build/jreleaser/** + eppo/build/staging-deploy/** + **/build/libs/** + **/hs_err_pid*.log + retention-days: 7 From 3165acfb837e860d617c8d9255c81816a3e372c8 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 12:22:48 -0600 Subject: [PATCH 14/24] fix dirs? --- eppo/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index d38432f5..9456ce96 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -149,7 +149,7 @@ publishing { repositories { maven { name = 'staging' - url = layout.buildDirectory.dir('staging-deploy') + url = layout.buildDirectory.dir('eppo/build/staging-deploy') } } } @@ -167,7 +167,7 @@ jreleaser { 'release-deploy' { active = 'RELEASE' url = 'https://central.sonatype.com/api/v1/publisher' - stagingRepository('build/staging-deploy') + stagingRepository('eppo/build/staging-deploy') } } nexus2 { @@ -179,7 +179,7 @@ jreleaser { snapshotSupported = true closeRepository = true releaseRepository = true - stagingRepository('build/staging-deploy') + stagingRepository('eppo/build/staging-deploy') } } } From d96b3b9fd276c451a5a439608ff8c19500b5d8d4 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 12:33:35 -0600 Subject: [PATCH 15/24] keep on --- eppo/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 9456ce96..0f7b42c2 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -149,7 +149,7 @@ publishing { repositories { maven { name = 'staging' - url = layout.buildDirectory.dir('eppo/build/staging-deploy') + url = layout.buildDirectory.dir('staging-deploy') } } } From c77aedfbb32d1031575e4b1782e9682d584172c3 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Tue, 3 Jun 2025 12:47:29 -0600 Subject: [PATCH 16/24] dirs --- eppo/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 0f7b42c2..d38432f5 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -167,7 +167,7 @@ jreleaser { 'release-deploy' { active = 'RELEASE' url = 'https://central.sonatype.com/api/v1/publisher' - stagingRepository('eppo/build/staging-deploy') + stagingRepository('build/staging-deploy') } } nexus2 { @@ -179,7 +179,7 @@ jreleaser { snapshotSupported = true closeRepository = true releaseRepository = true - stagingRepository('eppo/build/staging-deploy') + stagingRepository('build/staging-deploy') } } } From cd4045db1b38d04ba5fbee06b25e7a5d4027525f Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 14:29:07 -0600 Subject: [PATCH 17/24] nested under eppo --- eppo/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index d38432f5..0f7b42c2 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -167,7 +167,7 @@ jreleaser { 'release-deploy' { active = 'RELEASE' url = 'https://central.sonatype.com/api/v1/publisher' - stagingRepository('build/staging-deploy') + stagingRepository('eppo/build/staging-deploy') } } nexus2 { @@ -179,7 +179,7 @@ jreleaser { snapshotSupported = true closeRepository = true releaseRepository = true - stagingRepository('build/staging-deploy') + stagingRepository('eppo/build/staging-deploy') } } } From f60a3a220071fad97103ddda954a7ef6db2cadb4 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 14:38:27 -0600 Subject: [PATCH 18/24] try with jreleaser downgrade --- eppo/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 0f7b42c2..ed3c38cf 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -1,7 +1,7 @@ plugins { id 'com.android.library' id 'maven-publish' - id 'org.jreleaser' version '1.18.0' + id 'org.jreleaser' version '1.14.0' id "com.diffplug.spotless" version "7.0.3" } @@ -167,7 +167,7 @@ jreleaser { 'release-deploy' { active = 'RELEASE' url = 'https://central.sonatype.com/api/v1/publisher' - stagingRepository('eppo/build/staging-deploy') + stagingRepository('build/staging-deploy') } } nexus2 { @@ -179,7 +179,7 @@ jreleaser { snapshotSupported = true closeRepository = true releaseRepository = true - stagingRepository('eppo/build/staging-deploy') + stagingRepository('build/staging-deploy') } } } From 240884c0c32f6d29390487a5b6b91b96d455cc5a Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 14:50:31 -0600 Subject: [PATCH 19/24] use publish task --- .github/workflows/publish-snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 65d9b2fa..63743d14 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -42,7 +42,7 @@ jobs: run: ./gradlew eppo:clean eppo:publish -Psnapshot - name: Deploy to Maven Central - run: ./gradlew eppo:jreleaserDeploy + run: ./gradlew eppo:jreleaserPublish - name: Upload build artifacts and logs if: always() From c6ed16cc6b58140767e61075622fd74cb4f2f13f Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 14:57:28 -0600 Subject: [PATCH 20/24] deps --- eppo/build.gradle | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index ed3c38cf..6c1163f7 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -1,7 +1,7 @@ plugins { id 'com.android.library' id 'maven-publish' - id 'org.jreleaser' version '1.14.0' + id 'org.jreleaser' version '1.18.0' id "com.diffplug.spotless" version "7.0.3" } @@ -78,6 +78,9 @@ dependencies { implementation 'org.slf4j:slf4j-api:2.0.17' + // Force newer Apache Commons Compress version for JReleaser 1.18.0 compatibility + implementation 'org.apache.commons:commons-compress:1.27.1' + implementation "androidx.core:core:${versions.androidx_core}" implementation "com.squareup.okhttp3:okhttp:${versions.okhttp}" implementation "com.github.zafarkhaja:java-semver:${versions.semver}" From de15a6c32096399cc477f1d00c0be08c22b1c8f5 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 15:08:32 -0600 Subject: [PATCH 21/24] publishing type --- eppo/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 6c1163f7..0cf6e2d6 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -115,7 +115,7 @@ spotless { publishing { publications { - release(MavenPublication) { + maven(MavenPublication) { groupId = 'cloud.eppo' artifactId = 'android-sdk' version = project.version From ea3e3a96f88cd726e3e287bfd1b8d592b673416e Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 15:20:39 -0600 Subject: [PATCH 22/24] try another change --- eppo/build.gradle | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index 0cf6e2d6..b5718bee 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -115,14 +115,12 @@ spotless { publishing { publications { - maven(MavenPublication) { + release(MavenPublication) { groupId = 'cloud.eppo' artifactId = 'android-sdk' version = project.version - afterEvaluate { - from components.release - } + from components.java pom { name = 'Eppo Android' From 37a025dd83e7963023047363a9dcfb79658ce550 Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 15:28:38 -0600 Subject: [PATCH 23/24] ?? --- eppo/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eppo/build.gradle b/eppo/build.gradle index b5718bee..6c1163f7 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -120,7 +120,9 @@ publishing { artifactId = 'android-sdk' version = project.version - from components.java + afterEvaluate { + from components.release + } pom { name = 'Eppo Android' From a14e90d8c66eebf9ce3672718de750ab8405ce2f Mon Sep 17 00:00:00 2001 From: Ty Potter Date: Mon, 9 Jun 2025 17:10:07 -0600 Subject: [PATCH 24/24] project block --- eppo/build.gradle | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/eppo/build.gradle b/eppo/build.gradle index 6c1163f7..ebad2721 100644 --- a/eppo/build.gradle +++ b/eppo/build.gradle @@ -164,6 +164,20 @@ jreleaser { armored = true verify = false } + project { + name = 'android-sdk' + description = 'Android SDK for Eppo feature flag and experimentation platform' + longDescription = 'Android SDK for Eppo feature flag and experimentation platform' + links { + homepage = 'https://www.geteppo.com' + documentation = 'https://docs.geteppo.com' + license = 'https://github.com/Eppo-exp/android-sdk/blob/main/LICENSE' + bugTracker = 'https://github.com/Eppo-exp/android-sdk/issues' + } + authors = ['Eppo'] + license = 'MIT' + inceptionYear = '2021' + } deploy { maven { mavenCentral {