From ca1cb28e95d7594776a869568a2dd043cd53e143 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Sun, 8 Oct 2023 11:50:51 -0500 Subject: [PATCH] [CI] Update release to close and release Sonatype repo separately --- .github/workflows/central-release.yml | 26 +++++++++++++++++++ .github/workflows/ci.yml | 4 +-- buildSrc/build.gradle | 2 +- .../pulsar/gradle/RootProjectPlugin.java | 6 ----- .../publish/PublishArtifactsPlugin.java | 2 +- 5 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/central-release.yml diff --git a/.github/workflows/central-release.yml b/.github/workflows/central-release.yml new file mode 100644 index 00000000..740c37bd --- /dev/null +++ b/.github/workflows/central-release.yml @@ -0,0 +1,26 @@ +name: Maven Central (Release Sonatype) + +on: + workflow_dispatch: + +env: + GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }} + GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }} + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }} + +jobs: + release_sonatype_repo: + if: github.repository == 'spring-projects/spring-pulsar' + name: Release Sonatype Staging Repo + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: spring-io/spring-gradle-build-action@v2 + - name: Release Sonatype repo to Maven Central + env: + OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} + OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} + run: | + ./gradlew findSonatypeStagingRepository releaseSonatypeStagingRepository \ + --stacktrace \ + -PossrhUsername="$OSSRH_TOKEN_USERNAME" -PossrhPassword="$OSSRH_TOKEN_PASSWORD" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c662b31..65f9c09e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} run: | - ./gradlew publishArtifacts finalizeDeployArtifacts \ + ./gradlew publishArtifacts \ --stacktrace \ -PossrhUsername="$OSSRH_TOKEN_USERNAME" -PossrhPassword="$OSSRH_TOKEN_PASSWORD" \ -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" @@ -153,7 +153,7 @@ jobs: runs-on: ubuntu-latest permissions: contents: write - timeout-minutes: 90 + timeout-minutes: 120 if: ${{ !endsWith(needs.prerequisites.outputs.project_version, '-SNAPSHOT') }} env: REPO: ${{ github.repository }} diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index fddb1523..850cb2ad 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -44,7 +44,7 @@ dependencies { implementation localGroovy() implementation 'commons-codec:commons-codec:1.15' implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.4' - implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' + implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation("io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.38") implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation "org.apache.maven:maven-embedder:3.6.3" diff --git a/buildSrc/src/main/java/org/springframework/pulsar/gradle/RootProjectPlugin.java b/buildSrc/src/main/java/org/springframework/pulsar/gradle/RootProjectPlugin.java index 26919604..1c474f43 100644 --- a/buildSrc/src/main/java/org/springframework/pulsar/gradle/RootProjectPlugin.java +++ b/buildSrc/src/main/java/org/springframework/pulsar/gradle/RootProjectPlugin.java @@ -39,13 +39,7 @@ public class RootProjectPlugin implements Plugin { pluginManager.apply(SpringNexusPublishPlugin.class); pluginManager.apply(ArtifactoryPlugin.class); pluginManager.apply(SonarQubeConventionsPlugin.class); - project.getRepositories().mavenCentral(); - - Task finalizeDeployArtifacts = project.task("finalizeDeployArtifacts"); - if (ProjectUtils.isRelease(project) && project.hasProperty("ossrhUsername")) { - finalizeDeployArtifacts.dependsOn(project.getTasks().findByName("closeAndReleaseOssrhStagingRepository")); - } } } diff --git a/buildSrc/src/main/java/org/springframework/pulsar/gradle/publish/PublishArtifactsPlugin.java b/buildSrc/src/main/java/org/springframework/pulsar/gradle/publish/PublishArtifactsPlugin.java index 67d48dc5..fe51c609 100644 --- a/buildSrc/src/main/java/org/springframework/pulsar/gradle/publish/PublishArtifactsPlugin.java +++ b/buildSrc/src/main/java/org/springframework/pulsar/gradle/publish/PublishArtifactsPlugin.java @@ -13,7 +13,7 @@ public class PublishArtifactsPlugin implements Plugin { publishArtifacts.setGroup("Publishing"); publishArtifacts.setDescription("Publish the artifacts to either Artifactory or Maven Central based on the version"); if (ProjectUtils.isRelease(project)) { - publishArtifacts.dependsOn("publishToOssrh"); + publishArtifacts.dependsOn("publishToOssrh", "closeOssrhStagingRepository"); } else { publishArtifacts.dependsOn("artifactoryPublish");