Skip to content

Commit 99d0e1f

Browse files
committed
chore: migrate from semantic-release to release-please
1 parent 03b934d commit 99d0e1f

4 files changed

Lines changed: 81 additions & 0 deletions

File tree

.github/workflows/publish.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Publish to Maven Central
2+
on:
3+
release:
4+
types: [published]
5+
6+
jobs:
7+
publish:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
- name: Set up JDK 21
12+
uses: actions/setup-java@v4
13+
with:
14+
java-version: '21'
15+
distribution: 'adopt'
16+
- name: Setup Gradle
17+
uses: gradle/actions/setup-gradle@v3
18+
19+
- name: Set up Gradle Publishing Environment Variables
20+
run: |
21+
echo $GPG_KEY_ARMOR | base64 --decode > ./release.asc
22+
gpg --quiet --output $GITHUB_WORKSPACE/release.gpg --dearmor ./release.asc
23+
24+
echo "Build and publish"
25+
# Inject secrets into gradle.properties
26+
# Note: It is often safer to pass these as ./gradlew -P... properties or env vars if the build script supports it,
27+
# but we are replicating the previous behavior of sed replacements to minimize build script changes unless necessary.
28+
# However, typical best practice is environment variables.
29+
# Let's check how build.gradle.kts and gradle.properties interact.
30+
# The previous workflow used sed to replace values in gradle.properties.
31+
# We will replicate that for stability.
32+
33+
sed -i -e "s,mavenCentralUsername=,mavenCentralUsername=$SONATYPE_TOKEN_USERNAME,g" gradle.properties
34+
SONATYPE_TOKEN_PASSWORD_ESCAPED=$(printf '%s\n' "$SONATYPE_TOKEN_PASSWORD" | sed -e 's/[\/&]/\\&/g')
35+
sed -i -e "s,mavenCentralPassword=,mavenCentralPassword=$SONATYPE_TOKEN_PASSWORD_ESCAPED,g" gradle.properties
36+
sed -i -e "s,signing.keyId=,signing.keyId=$GPG_KEY_ID,g" gradle.properties
37+
sed -i -e "s,signing.password=,signing.password=$GPG_PASSWORD,g" gradle.properties
38+
sed -i -e "s,signing.secretKeyRingFile=,signing.secretKeyRingFile=$GITHUB_WORKSPACE/release.gpg,g" gradle.properties
39+
40+
- name: Publish
41+
run: ./gradlew publishToMavenCentral
42+
env:
43+
SONATYPE_TOKEN_USERNAME: ${{ secrets.SONATYPE_TOKEN }}
44+
SONATYPE_TOKEN_PASSWORD: ${{ secrets.SONATYPE_TOKEN_PASSWORD }}
45+
GPG_KEY_ARMOR: ${{ secrets.SYNCED_GPG_KEY_ARMOR }}
46+
GPG_PASSWORD: ${{ secrets.SYNCED_GPG_KEY_PASSWORD }}
47+
GPG_KEY_ID: ${{ secrets.SYNCED_GPG_KEY_ID }}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
on:
2+
push:
3+
branches:
4+
- main
5+
6+
permissions:
7+
contents: write
8+
pull-requests: write
9+
10+
name: release-please
11+
12+
jobs:
13+
release-please:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: google-github-actions/release-please-action@v4
17+
with:
18+
token: ${{ secrets.GITHUB_TOKEN }}
19+
config-file: release-please-config.json
20+
manifest-file: .release-please-manifest.json

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "6.12.2"
3+
}

release-please-config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"packages": {
3+
".": {
4+
"release-type": "simple",
5+
"extra-files": [
6+
"build.gradle.kts",
7+
"README.md"
8+
]
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)