11name : Publish Release
22
33on :
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
1516permissions :
1617 contents : write
1718 pull-requests : read
1819
20+ concurrency :
21+ group : ${{ github.workflow }}-${{ github.ref }}
22+ cancel-in-progress : true
23+
1924jobs :
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 }}
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