From 4d14bade84d5951027ae452081b766341a80d018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Fri, 23 Jan 2026 13:22:26 +0100 Subject: [PATCH 1/4] build: introduced release-please --- .github/workflows/release-please.yml | 76 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 69 ------------------------- .release-please-manifest.json | 3 ++ .releaserc | 30 ----------- build.gradle.kts | 2 +- gradle.properties | 2 + release-please-config.json | 12 +++++ 7 files changed, 94 insertions(+), 100 deletions(-) create mode 100644 .github/workflows/release-please.yml delete mode 100644 .github/workflows/release.yml create mode 100644 .release-please-manifest.json delete mode 100644 .releaserc create mode 100644 release-please-config.json diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 000000000..6cb1b4ddb --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,76 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: release-please + +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: googleapis/release-please-action@v4 + id: release + with: + token: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }} + + # The steps below only run when a release PR is merged and a GitHub release is created + - name: Checkout + if: ${{ steps.release.outputs.release_created }} + uses: actions/checkout@v6 + + - name: Set up JDK 17 + if: ${{ steps.release.outputs.release_created }} + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + - uses: gradle/actions/setup-gradle@v4 + if: ${{ steps.release.outputs.release_created }} + + - name: Set up Gradle Publishing Environment Variables + if: ${{ steps.release.outputs.release_created }} + run: | + echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc + gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc + + echo "Build and publish" + sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_TOKEN_USERNAME,g" gradle.properties + SONATYPE_TOKEN_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_TOKEN_PASSWORD" | sed -e 's/[\/&]/\\&/g') + sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_TOKEN_PASSWORD_ESCAPED,g" gradle.properties + sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties + sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties + sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties + env: + GPG_KEY_ARMOR: ${{ secrets.SYNCED_GPG_KEY_ARMOR }} + GPG_KEY_ID: ${{ secrets.SYNCED_GPG_KEY_ID }} + GPG_PASSWORD: ${{ secrets.SYNCED_GPG_KEY_PASSWORD }} + SONATYPE_TOKEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }} + SONATYPE_TOKEN_USERNAME: ${{ secrets.SONATYPE_TOKEN }} + + - name: Build and Publish + if: ${{ steps.release.outputs.release_created }} + run: | + ./gradlew build --warn --stacktrace + ./gradlew publishToMavenCentral --warn --stacktrace --debug --info + env: + GH_TOKEN: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index c63c872ee..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Release -on: - push: - branches: [ main ] - workflow_dispatch: - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - token: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }} - - name: Set up JDK 17 - uses: actions/setup-java@v5 - with: - java-version: '17' - distribution: 'temurin' - - uses: gradle/actions/wrapper-validation@v4 - - name: Set up Gradle Publishing Environment Variables - run: | - echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc - gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc - - echo "Build and publish" - sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_TOKEN_USERNAME,g" gradle.properties - SONATYPE_TOKEN_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_TOKEN_PASSWORD" | sed -e 's/[\/&]/\\&/g') - sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_TOKEN_PASSWORD_ESCAPED,g" gradle.properties - sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties - sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties - sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties - env: - GPG_KEY_ARMOR: ${{ secrets.SYNCED_GPG_KEY_ARMOR }} - GPG_KEY_ID: ${{ secrets.SYNCED_GPG_KEY_ID }} - GPG_PASSWORD: ${{ secrets.SYNCED_GPG_KEY_PASSWORD }} - SONATYPE_TOKEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }} - SONATYPE_TOKEN_USERNAME: ${{ secrets.SONATYPE_TOKEN }} - - - uses: actions/setup-node@v5 - with: - node-version: '14' - - - name: Semantic Release - uses: cycjimmy/semantic-release-action@v5.0.0 - with: - extra_plugins: | - "@semantic-release/commit-analyzer@8.0.1" - "@semantic-release/release-notes-generator@9.0.3" - "@google/semantic-release-replace-plugin@1.2.0" - "@semantic-release/exec@5.0.0" - "@semantic-release/git@9.0.1" - "@semantic-release/github@7.2.3" - env: - GH_TOKEN: ${{ secrets.SYNCED_GITHUB_TOKEN_REPO }} diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 000000000..9026872d7 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "3.20.1" +} \ No newline at end of file diff --git a/.releaserc b/.releaserc deleted file mode 100644 index 5453d844b..000000000 --- a/.releaserc +++ /dev/null @@ -1,30 +0,0 @@ -branches: - - main - - devsite -plugins: - - "@semantic-release/commit-analyzer" - - "@semantic-release/release-notes-generator" - - - "@google/semantic-release-replace-plugin" - - replacements: - - files: - - "build.gradle.kts" - from: "\\bversion = \".*\"" - to: "version = \"${nextRelease.version}\"" - - files: - - "build.gradle.kts" - from: "com.google.maps.android:android-maps-utils:([0-9]+).([0-9]+).([0-9]+)" - to: "com.google.maps.android:android-maps-utils:${nextRelease.version}'" - - files: - - "README.md" - from: ":([0-9]+).([0-9]+).([0-9]+)" - to: ":${nextRelease.version}" - - - "@semantic-release/exec" - - prepareCmd: "./gradlew build --warn --stacktrace" - publishCmd: "./gradlew publishToMavenCentral --warn --stacktrace --debug --info" - - - "@semantic-release/git" - - assets: - - "build.gradle.kts" - - "*.md" - - "@semantic-release/github" -options: - debug: true diff --git a/build.gradle.kts b/build.gradle.kts index c1c2879c3..10066810c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,5 +37,5 @@ tasks.register("clean") { allprojects { group = "com.google.maps.android" - version = "3.20.1" + version = project.property("version") as String } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 3bc1059a9..03990956e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,3 +38,5 @@ mavenCentralPassword= # Add a property to enable automatic release to Maven Central (optional, but good for CI) # If true, publishToMavenCentral will also close and release the staging repository mavenCentralAutomaticRelease=false + +version=3.20.1 diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 000000000..ede0f2f1b --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,12 @@ +{ + "release-type": "android", + "packages": { + ".": { + "release-type": "android", + "extra-files": [ + "README.md", + "build.gradle.kts" + ] + } + } +} From 44a743ef929838686c0aa1465f53341766ee2c1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Fri, 23 Jan 2026 13:24:20 +0100 Subject: [PATCH 2/4] build: header --- .github/workflows/release-please.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 6cb1b4ddb..c29066ee8 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,4 +1,4 @@ -# Copyright 2024 Google LLC +# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From dfc5ac2e7c743dd50b70e3b4fb4947354275e4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Fri, 23 Jan 2026 13:25:33 +0100 Subject: [PATCH 3/4] build: release simple --- gradle.properties | 2 -- release-please-config.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 03990956e..3bc1059a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,5 +38,3 @@ mavenCentralPassword= # Add a property to enable automatic release to Maven Central (optional, but good for CI) # If true, publishToMavenCentral will also close and release the staging repository mavenCentralAutomaticRelease=false - -version=3.20.1 diff --git a/release-please-config.json b/release-please-config.json index ede0f2f1b..1f9377b9e 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -2,7 +2,7 @@ "release-type": "android", "packages": { ".": { - "release-type": "android", + "release-type": "simple", "extra-files": [ "README.md", "build.gradle.kts" From 91e19089aaf84af89274bd991ffd87574e252b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20Lo=CC=81pez=20Man=CC=83as?= Date: Fri, 23 Jan 2026 13:26:27 +0100 Subject: [PATCH 4/4] build: release simple --- build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 10066810c..fffd750dc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,5 +37,7 @@ tasks.register("clean") { allprojects { group = "com.google.maps.android" - version = project.property("version") as String + // {x-release-please-start-version} + version = "3.20.1" + // {x-release-please-end} } \ No newline at end of file