diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index e65aed0d..bbbab046 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -16,9 +16,12 @@ jobs: name: Setup Gradle - name: Check Fladle run: ./gradlew assembleDebug assembleDebugAndroidTest printYml check :fladle-plugin:check - - name: Publish Marker Snapshot + - name: Publish Snapshot if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }} - run: ./gradlew :fladle-plugin:publishFladlePluginMarkerMavenPublicationToMavenCentralRepository :fladle-plugin:publishFulladlePluginMarkerMavenPublicationToMavenCentralRepository -Pfladle.releaseMode -PmavenCentralUsername=${{ secrets.SONATYPE_USERNAME }} -PmavenCentralPassword=${{ secrets.SONATYPE_PASSWORD }} - - name: Publish Plugin Snapshot - if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }} - run: ./gradlew :fladle-plugin:publishPluginMavenPublicationToMavenCentralRepository -Pfladle.releaseMode -PmavenCentralUsername=${{ secrets.SONATYPE_USERNAME }} -PmavenCentralPassword=${{ secrets.SONATYPE_PASSWORD }} + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_SIGNING_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }} + run: ./gradlew :fladle-plugin:publishToMavenCentral --no-configuration-cache diff --git a/.github/workflows/gradle-release.yml b/.github/workflows/gradle-release.yml new file mode 100644 index 00000000..6565d5bb --- /dev/null +++ b/.github/workflows/gradle-release.yml @@ -0,0 +1,40 @@ +name: "Release" +on: + push: + tags: + - 'v*' + workflow_dispatch: + +jobs: + release: + name: "Publish Release" + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 + with: + java-version: "17" + distribution: "temurin" + - uses: gradle/actions/setup-gradle@v5 + - name: Publish to Maven Central + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_SIGNING_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }} + run: ./gradlew :fladle-plugin:publishToMavenCentral --no-configuration-cache + - name: Publish to Gradle Plugin Portal + env: + GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} + GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SIGNING_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_SIGNING_KEY_ID }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }} + run: ./gradlew :fladle-plugin:publishPlugins + - name: Create GitHub Release + env: + GH_TOKEN: ${{ github.token }} + run: gh release create "${{ github.ref_name }}" --generate-notes diff --git a/docs/changelog.md b/docs/changelog.md index 08f2d165..ca08b04b 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,10 @@ * Minimum required Gradle version is now 9.1 * Fixed support for Android Gradle Plugin version 9.0.1 +## 0.20.0 +* Minimum required Gradle version is now 9.1 +* Fixed support for Android Gradle Plugin version 9.0.1 + ## 0.19.0 * Minimum required JVM version is now 17. * Minimum supported Gradle version is now 7.3. diff --git a/docs/releasing.md b/docs/releasing.md index d718d59a..10ec8351 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -36,18 +36,14 @@ git tag v{{ fladle.next_release }} git push origin v{{ fladle.next_release }} ``` -* Upload to Maven Central (this must run in two separate commands since they are from two different namespaces) -``` bash -./gradlew :fladle-plugin:publishFladlePluginMarkerMavenPublicationToMavenCentralRepository :fladle-plugin:publishFulladlePluginMarkerMavenPublicationToMavenCentralRepository -Pfladle.release -./gradlew :fladle-plugin:publishPluginMavenPublicationToMavenCentralRepository -Pfladle.release -``` -* Upload to Gradle Plugin Portal -```bash -./gradlew :fladle-plugin:publishPlugins -Pfladle.releaseMode -Dorg.gradle.internal.publish.checksums.insecure=true -``` +Pushing the tag automatically triggers the [release workflow](https://github.com/runningcode/fladle/actions/workflows/gradle-release.yml) which: + +1. Publishes to Maven Central +2. Publishes to Gradle Plugin Portal +3. Creates a GitHub Release with auto-generated notes * Release to Maven Central - * Login to Maven Central Repository: [https://central.sonatype.com/](https://oss.sonatype.com/) + * Login to Maven Central Repository: [https://central.sonatype.com/](https://central.sonatype.com/) * Click on **Publish** * Merge the release branch to master diff --git a/fladle-plugin/build.gradle.kts b/fladle-plugin/build.gradle.kts index 29d4e847..895526fb 100644 --- a/fladle-plugin/build.gradle.kts +++ b/fladle-plugin/build.gradle.kts @@ -1,7 +1,7 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent group = "com.osacky.flank.gradle" -version = "0.19.1-SNAPSHOT" +version = "0.20.0" description = "Easily Scale your Android Instrumentation Tests with Firebase Test Lab with Flank" repositories { diff --git a/mkdocs.yml b/mkdocs.yml index e20000ff..be9b1e1d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,8 +4,8 @@ extra: fladle: - current_release: '0.19.0' - next_release: '0.19.1' + current_release: '0.20.0' + next_release: '0.20.1' flank_version: '23.10.1' site_name: Fladle