diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 99761dc..5712e1c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,72 +1,43 @@ name: Release on: + push: + branches: + - main workflow_dispatch: - inputs: - prerelease: - description: "Prerelease" - required: true - default: false - type: boolean - draft: - description: "Draft" - required: true - default: false - type: boolean - version-increment-type: - description: "Which part of the version to increment:" - required: true - type: choice - options: - - major - - minor - - patch - default: "patch" permissions: - contents: write + contents: read + +concurrency: + group: release + cancel-in-progress: false jobs: - release: - name: Version Bump and Release + release-please: + name: Release Please + runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: + # Uses GITHUB_TOKEN, so CI does not run on the release PR by itself. + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + id: release + + publish: + name: Publish to Maven Central + needs: release-please + if: needs.release-please.outputs.release_created == 'true' runs-on: ubuntu-latest - steps: - uses: actions/checkout@v7 with: - token: ${{ secrets.AUTOMATION_USER_TOKEN }} - fetch-depth: 0 - - - uses: DevCycleHQ/release-action/prepare-release@v2.3.0 - id: prepare-release - with: - github-token: ${{ secrets.AUTOMATION_USER_TOKEN }} - prerelease: ${{ github.event.inputs.prerelease }} - draft: ${{ github.event.inputs.draft }} - version-increment-type: ${{ github.event.inputs.version-increment-type }} - - - name: Update Version in code - run: | - sed -i "s/^version = \"[0-9]\+\.[0-9]\+\.[0-9]\+\"/version = \"${{steps.prepare-release.outputs.next-release-tag}}\"/g" build.gradle - sed -i "s/private String sdkVersion = \"[0-9]\+\.[0-9]\+\.[0-9]\+\";/private String sdkVersion = \"${{steps.prepare-release.outputs.next-release-tag}}\";/g" src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java - sed -i "s/[0-9]\+\.[0-9]\+\.[0-9]\+<\/java\.server\.sdk\.version>/${{steps.prepare-release.outputs.next-release-tag}}<\/java.server.sdk.version>/g" ./benchmark/pom.xml - sed -i "s/[0-9]\+\.[0-9]\+\.[0-9]\+<\/version>/${{steps.prepare-release.outputs.next-release-tag}}<\/version>/g" ./README.md - sed -i "s/java-server-sdk:[0-9]\+\.[0-9]\+\.[0-9]\+/java-server-sdk:${{steps.prepare-release.outputs.next-release-tag}}/g" ./README.md - - - name: Commit version change - run: | - git config --global user.email "foundation-admin@devcycle.com" - git config --global user.name "DevCycle Automation" - git add ./build.gradle - git add ./src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java - git add ./benchmark/pom.xml - git add ./README.md - git commit -m "Release ${{steps.prepare-release.outputs.next-release-tag}}" - - - name: Push version change - run: | - git push origin HEAD:main - if: inputs.draft != true + ref: ${{ needs.release-please.outputs.tag_name }} - name: Set up Java 18 uses: actions/setup-java@v5 @@ -84,18 +55,3 @@ jobs: ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }} run: | ./gradlew publishAllPublicationsToMavenCentral --no-configuration-cache - - - uses: DevCycleHQ/release-action/create-release@v2.3.0 - id: create-release - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ steps.prepare-release.outputs.next-release-tag }} - target: main - prerelease: ${{ github.event.inputs.prerelease }} - draft: ${{ github.event.inputs.draft }} - changelog: ${{ steps.prepare-release.outputs.changelog }} - - - name: Display link to release - run: | - echo "::notice title=Release ID::${{ steps.create-release.outputs.release-id }}" - echo "::notice title=Release URL::${{ steps.create-release.outputs.release-url }}" diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..f393718 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "2.10.0" +} diff --git a/README.md b/README.md index 1563e91..4a0c3b9 100755 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ ldd --version ## Installation + + ### Gradle You can use the SDK in your Gradle project by adding the following to *build.gradle*: @@ -48,6 +50,8 @@ You can use the SDK in your Maven project by adding the following to your *pom.x ``` + + ## DNS Caching The JVM, by default, caches DNS for infinity. DevCycle servers are load balanced and dynamic. To address this concern, setting the DNS cache TTL to a short duration is recommended. The TTL is controlled by this security setting `networkaddress.cache.ttl`. diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9b15f09..87996cf 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -33,7 +33,7 @@ UTF-8 1.36 11 - 2.10.0 + 2.10.0 java-server-sdk-benchmarks diff --git a/build.gradle b/build.gradle index 170dc3b..9785b45 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ java { group = "com.devcycle" archivesBaseName = "java-server-sdk" -version = "2.10.0" +version = "2.10.0" // x-release-please-version mavenPublishing { coordinates("com.devcycle", "java-server-sdk", version) diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..143fc18 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "simple", + "include-component-in-tag": false, + "extra-files": [ + "build.gradle", + "README.md", + "benchmark/pom.xml", + "src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java" + ] + } + } +} diff --git a/src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java b/src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java index 334d04c..3f0ae32 100644 --- a/src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java +++ b/src/main/java/com/devcycle/sdk/server/common/model/PlatformData.java @@ -32,7 +32,7 @@ public class PlatformData { @Schema(description = "DevCycle SDK Version") @Builder.Default - private String sdkVersion = "2.10.0"; + private String sdkVersion = "2.10.0"; // x-release-please-version @Schema(description = "DevCycle SDK Platform") @Builder.Default