diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d36b20..8fef5cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,6 +11,8 @@ env: GRADLE_OPTS: -Dorg.gradle.daemon=true -Dorg.gradle.parallel=true -Dorg.gradle.welcome=never GPG_SEC: ${{ secrets.PGP_SEC }} GPG_PASSWORD: ${{ secrets.PGP_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.SONATYPE_USER }} + OSSRH_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} jobs: build: @@ -31,7 +33,7 @@ jobs: contents: write pull-requests: write statuses: write - # Explicitly granted, necessary for the `publish` step. + # Explicitly granted, necessary for the `publish-github` step. packages: write steps: @@ -88,7 +90,7 @@ jobs: retention-days: 1 - name: 'Publish a snapshot to GitHub (Java 8 only)' - id: publish + id: publish-github if: ${{ github.event_name == 'push' && github.ref_type == 'branch' && github.ref == 'refs/heads/master' && matrix.java-version == 8 }} uses: gradle/gradle-build-action@v2 with: @@ -98,6 +100,18 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: 'Publish a snapshot to Maven Central (Java 8 only)' + id: publish-sonatype + if: ${{ github.event_name == 'push' && github.ref_type == 'branch' && github.ref == 'refs/heads/master' && matrix.java-version == 8 }} + uses: gradle/gradle-build-action@v2 + with: + gradle-version: wrapper + arguments: | + publishToSonatype + closeAndReleaseSonatypeStagingRepository + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + report: name: 'Publish JUnit test results (Java ${{ matrix.java-version }})' if: ${{ always() }} diff --git a/buildSrc/src/main/kotlin/com/saveourtool/kompiledb/publishing-configuration.gradle.kts b/buildSrc/src/main/kotlin/com/saveourtool/kompiledb/publishing-configuration.gradle.kts index 39a5407..bdae095 100644 --- a/buildSrc/src/main/kotlin/com/saveourtool/kompiledb/publishing-configuration.gradle.kts +++ b/buildSrc/src/main/kotlin/com/saveourtool/kompiledb/publishing-configuration.gradle.kts @@ -59,6 +59,13 @@ fun Project.configureNexusPublishing() { return } + System.getenv("OSSRH_USERNAME")?.let { sonatypeUsername -> + extra.set("sonatypeUsername", sonatypeUsername) + } + System.getenv("OSSRH_PASSWORD")?.let { sonatypePassword -> + extra.set("sonatypePassword", sonatypePassword) + } + if (!hasProperties("sonatypeUsername", "sonatypePassword")) { styledOut(logCategory = "nexus") .style(Info).text("Skipping Nexus publishing configuration as either ")