Skip to content

Commit 1b17943

Browse files
abdulraqeeb33AR Abdul Azeez
andauthored
ci: Option to release or just publish the SDK on maven (#2393)
* Option to release or just publish * branch * branch * creating a release tag only when its publishRelease on maven * Change condition for GitHub Release tagging --------- Co-authored-by: AR Abdul Azeez <abdul@onesignal.com>
1 parent cf697da commit 1b17943

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

.github/workflows/publish-release.yml

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
name: Publish Release
22

33
on:
4-
push:
5-
branches:
6-
- main
7-
- '*-main' # Matches 5.4-main, 5.5-main, etc.
84
workflow_dispatch:
95
inputs:
106
ref:
117
description: "Branch or commit SHA to run on"
128
required: false
139
default: "main"
10+
release_on_maven:
11+
description: "Release on Maven Central"
12+
required: true
13+
default: true
14+
type: boolean
1415

1516
permissions:
1617
contents: write
1718
pull-requests: read
1819

20+
concurrency:
21+
group: ${{ github.workflow }}-${{ github.ref }}
22+
cancel-in-progress: true
23+
1924
jobs:
2025
publish:
2126
runs-on: ubuntu-latest
2227

23-
# Auto-run only if this is a rel/* merge commit, OR manual dispatch
24-
if: github.event_name == 'workflow_dispatch' ||
25-
(startsWith(github.event.head_commit.message, 'Merge pull request') &&
26-
contains(github.event.head_commit.message, 'rel/'))
27-
2828
env:
2929
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
3030
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
@@ -94,7 +94,16 @@ jobs:
9494
-Psigning.password="$SDK_SIGNING_PASSWORD" \
9595
-Psigning.secretKeyRingFile="$GPG_FILE_PATH"
9696
97-
- name: Publish to Maven Central
97+
- name: Determine Publishing Method
98+
run: |
99+
if [[ "${{ github.event.inputs.release_on_maven }}" == "true" ]]; then
100+
echo "✅ Publishing to Maven Central And Release"
101+
else
102+
echo "🏠 Publishing to Maven Central - Not Releasing"
103+
fi
104+
105+
- name: Publish and Release to Maven Central
106+
if: github.event.inputs.release_on_maven == 'true'
98107
working-directory: OneSignalSDK
99108
run: |
100109
./gradlew publishAndReleaseToMavenCentral --no-configuration-cache \
@@ -104,11 +113,20 @@ jobs:
104113
-Psigning.password="$SDK_SIGNING_PASSWORD" \
105114
-Psigning.secretKeyRingFile="$GPG_FILE_PATH"
106115
107-
- name: Get latest merged rel/* PR
116+
- name: Publish Only to Maven Central
117+
if: github.event.inputs.release_on_maven != 'true'
118+
working-directory: OneSignalSDK
119+
run: |
120+
./gradlew publishToMavenCentral --no-configuration-cache \
121+
-PmavenCentralUsername="$MAVEN_USERNAME" \
122+
-PmavenCentralPassword="$MAVEN_PASSWORD" \
123+
-Psigning.keyId="$SDK_SIGNING_KEY_ID" \
124+
-Psigning.password="$SDK_SIGNING_PASSWORD" \
125+
-Psigning.secretKeyRingFile="$GPG_FILE_PATH"
126+
127+
- name: Get latest merged rel/* PR into main
108128
id: fetch_pr
109129
run: |
110-
echo "Looking for merged release PRs into base branch: $CURRENT_BRANCH"
111-
112130
PR_JSON=$(gh pr list \
113131
--state merged \
114132
--base "$CURRENT_BRANCH" \
@@ -127,6 +145,7 @@ jobs:
127145
echo "$PR_BODY" > release_notes.md
128146
129147
- name: Tag and create GitHub Release
148+
if: github.event.inputs.release_on_maven == 'true'
130149
run: |
131150
VERSION="${{ env.SDK_VERSION }}"
132151
@@ -154,4 +173,4 @@ jobs:
154173
gh release create "$VERSION" \
155174
--title "$VERSION" \
156175
--notes-file release_notes.md \
157-
$PRERELEASE
176+
$PRERELEASE

0 commit comments

Comments
 (0)