Skip to content

Commit 9ac0adb

Browse files
committed
Split publish workflow into per-module files with GitHub Release automation
1 parent d82a0e5 commit 9ac0adb

4 files changed

Lines changed: 161 additions & 132 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Publish Gradle Plugin
2+
3+
on:
4+
push:
5+
tags: ['plugin-v*']
6+
workflow_dispatch:
7+
8+
jobs:
9+
gradle-plugin-portal:
10+
name: Publish to Gradle Plugin Portal
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
defaults:
15+
run:
16+
working-directory: python-embed-gradle-plugin
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up JDK 17
21+
uses: actions/setup-java@v4
22+
with:
23+
java-version: '17'
24+
distribution: 'temurin'
25+
26+
- name: Set up Gradle
27+
uses: gradle/actions/setup-gradle@v4
28+
29+
- name: Make gradlew executable
30+
run: chmod +x gradlew
31+
32+
- name: Extract version from tag
33+
id: version
34+
run: |
35+
if [[ "$GITHUB_REF" == refs/tags/plugin-v* ]]; then
36+
echo "VERSION=${GITHUB_REF_NAME#plugin-v}" >> $GITHUB_OUTPUT
37+
else
38+
echo "VERSION=1.0.1" >> $GITHUB_OUTPUT
39+
fi
40+
41+
- name: Build
42+
run: ./gradlew build -PreleaseVersion=${{ steps.version.outputs.VERSION }}
43+
44+
- name: Publish to Gradle Plugin Portal
45+
run: ./gradlew publishPlugins -PreleaseVersion=${{ steps.version.outputs.VERSION }}
46+
env:
47+
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
48+
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
49+
50+
- name: Create GitHub Release
51+
if: startsWith(github.ref, 'refs/tags/')
52+
uses: softprops/action-gh-release@v2
53+
with:
54+
name: "python-embed-gradle-plugin v${{ steps.version.outputs.VERSION }}"
55+
generate_release_notes: true
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Publish Runtime
2+
3+
on:
4+
push:
5+
tags: ['runtime-v*']
6+
workflow_dispatch:
7+
8+
jobs:
9+
runtime-maven-central:
10+
name: Publish Runtime to Maven Central
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up JDK 17
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: '17'
21+
distribution: 'temurin'
22+
23+
- name: Set up Gradle
24+
uses: gradle/actions/setup-gradle@v4
25+
26+
- name: Make gradlew executable
27+
run: chmod +x gradlew
28+
29+
- name: Extract version from tag
30+
id: version
31+
run: |
32+
if [[ "$GITHUB_REF" == refs/tags/runtime-v* ]]; then
33+
echo "VERSION=${GITHUB_REF_NAME#runtime-v}" >> $GITHUB_OUTPUT
34+
fi
35+
36+
- name: Build
37+
run: ./gradlew :python-embed-runtime:build${{ steps.version.outputs.VERSION && format(' -PreleaseVersion={0}', steps.version.outputs.VERSION) || '' }}
38+
39+
- name: Publish to Maven Central
40+
run: ./gradlew :python-embed-runtime:publishToMavenCentral --no-configuration-cache${{ steps.version.outputs.VERSION && format(' -PreleaseVersion={0}', steps.version.outputs.VERSION) || '' }}
41+
env:
42+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
43+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
44+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }}
45+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_IN_MEMORY_KEY_ID }}
46+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }}
47+
48+
- name: Create GitHub Release
49+
if: steps.version.outputs.VERSION != ''
50+
uses: softprops/action-gh-release@v2
51+
with:
52+
name: "python-embed-runtime v${{ steps.version.outputs.VERSION }}"
53+
generate_release_notes: true
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Publish Starter
2+
3+
on:
4+
push:
5+
tags: ['starter-v*']
6+
workflow_dispatch:
7+
8+
jobs:
9+
starter-maven-central:
10+
name: Publish Starter to Maven Central
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up JDK 17
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: '17'
21+
distribution: 'temurin'
22+
23+
- name: Set up Gradle
24+
uses: gradle/actions/setup-gradle@v4
25+
26+
- name: Make gradlew executable
27+
run: chmod +x gradlew
28+
29+
- name: Extract version from tag
30+
id: version
31+
run: |
32+
if [[ "$GITHUB_REF" == refs/tags/starter-v* ]]; then
33+
echo "VERSION=${GITHUB_REF_NAME#starter-v}" >> $GITHUB_OUTPUT
34+
fi
35+
36+
- name: Build
37+
run: ./gradlew :python-embed-spring-boot-starter:build${{ steps.version.outputs.VERSION && format(' -PreleaseVersion={0}', steps.version.outputs.VERSION) || '' }}
38+
39+
- name: Publish to Maven Central
40+
run: ./gradlew :python-embed-spring-boot-starter:publishToMavenCentral --no-configuration-cache${{ steps.version.outputs.VERSION && format(' -PreleaseVersion={0}', steps.version.outputs.VERSION) || '' }}
41+
env:
42+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
43+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
44+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }}
45+
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_IN_MEMORY_KEY_ID }}
46+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }}
47+
48+
- name: Create GitHub Release
49+
if: steps.version.outputs.VERSION != ''
50+
uses: softprops/action-gh-release@v2
51+
with:
52+
name: "python-embed-spring-boot-starter v${{ steps.version.outputs.VERSION }}"
53+
generate_release_notes: true

.github/workflows/publish.yml

Lines changed: 0 additions & 132 deletions
This file was deleted.

0 commit comments

Comments
 (0)