Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 28 additions & 72 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
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/<java\.server\.sdk\.version>[0-9]\+\.[0-9]\+\.[0-9]\+<\/java\.server\.sdk\.version>/<java.server.sdk.version>${{steps.prepare-release.outputs.next-release-tag}}<\/java.server.sdk.version>/g" ./benchmark/pom.xml
sed -i "s/<version>[0-9]\+\.[0-9]\+\.[0-9]\+<\/version>/<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 "[email protected]"
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
Expand All @@ -84,18 +55,3 @@ jobs:
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
run: |
./gradlew publishAllPublicationsToMavenCentral --no-configuration-cache

- uses: DevCycleHQ/release-action/[email protected]
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 }}"
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "2.10.0"
}
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ ldd --version

## Installation

<!-- x-release-please-start-version -->

### Gradle
You can use the SDK in your Gradle project by adding the following to *build.gradle*:

Expand All @@ -48,6 +50,8 @@ You can use the SDK in your Maven project by adding the following to your *pom.x
</dependency>
```

<!-- x-release-please-end -->

## 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`.
Expand Down
2 changes: 1 addition & 1 deletion benchmark/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jmh.version>1.36</jmh.version>
<javac.target>11</javac.target>
<java.server.sdk.version>2.10.0</java.server.sdk.version>
<java.server.sdk.version>2.10.0</java.server.sdk.version> <!-- x-release-please-version -->
<uberjar.name>java-server-sdk-benchmarks</uberjar.name>
</properties>

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
15 changes: 15 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading