Skip to content

Commit d39ed4e

Browse files
committed
ci: add clean task to maven publish steps
1 parent 3cc5dbd commit d39ed4e

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

.github/workflows/publish-release.yml

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -85,42 +85,45 @@ jobs:
8585
echo "version=$VERSION" >> $GITHUB_OUTPUT
8686
echo "Resolved version: $VERSION"
8787
88-
- name: Assemble Release
89-
run: ./gradlew assembleRelease
90-
working-directory: OneSignalSDK
88+
- name: Check if already published on Maven Central
89+
id: check_maven
90+
run: |
91+
VERSION="${{ env.SDK_VERSION }}"
92+
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
93+
"https://repo1.maven.org/maven2/com/onesignal/OneSignal/${VERSION}/OneSignal-${VERSION}.pom")
94+
if [[ "$HTTP_STATUS" == "200" ]]; then
95+
echo "already_published=true" >> $GITHUB_OUTPUT
96+
echo "Version $VERSION is already on Maven Central, skipping publish."
97+
else
98+
echo "already_published=false" >> $GITHUB_OUTPUT
99+
echo "Version $VERSION not found on Maven Central (HTTP $HTTP_STATUS), will publish."
100+
fi
91101
92102
- name: Dry Run - Publish to Maven Local with signing
103+
if: steps.check_maven.outputs.already_published != 'true'
93104
working-directory: OneSignalSDK
94105
run: |
95106
./gradlew publishToMavenLocal --no-configuration-cache \
96107
-Psigning.keyId="$SDK_SIGNING_KEY_ID" \
97108
-Psigning.password="$SDK_SIGNING_PASSWORD" \
98109
-Psigning.secretKeyRingFile="$GPG_FILE_PATH"
99110
100-
- name: Determine Publishing Method
101-
run: |
102-
if [[ "${{ github.event.inputs.release_on_maven }}" == "true" ]]; then
103-
echo "✅ Publishing to Maven Central And Release"
104-
else
105-
echo "🏠 Publishing to Maven Central - Not Releasing"
106-
fi
107-
108111
- name: Publish and Release to Maven Central
109-
if: github.event.inputs.release_on_maven == 'true'
112+
if: github.event.inputs.release_on_maven == 'true' && steps.check_maven.outputs.already_published != 'true'
110113
working-directory: OneSignalSDK
111114
run: |
112-
./gradlew publishAndReleaseToMavenCentral --no-configuration-cache \
115+
./gradlew clean publishAndReleaseToMavenCentral --no-configuration-cache \
113116
-PmavenCentralUsername="$MAVEN_USERNAME" \
114117
-PmavenCentralPassword="$MAVEN_PASSWORD" \
115118
-Psigning.keyId="$SDK_SIGNING_KEY_ID" \
116119
-Psigning.password="$SDK_SIGNING_PASSWORD" \
117120
-Psigning.secretKeyRingFile="$GPG_FILE_PATH"
118121
119122
- name: Publish Only to Maven Central
120-
if: github.event.inputs.release_on_maven != 'true'
123+
if: github.event.inputs.release_on_maven != 'true' && steps.check_maven.outputs.already_published != 'true'
121124
working-directory: OneSignalSDK
122125
run: |
123-
./gradlew publishToMavenCentral --no-configuration-cache \
126+
./gradlew clean publishToMavenCentral --no-configuration-cache \
124127
-PmavenCentralUsername="$MAVEN_USERNAME" \
125128
-PmavenCentralPassword="$MAVEN_PASSWORD" \
126129
-Psigning.keyId="$SDK_SIGNING_KEY_ID" \
@@ -152,15 +155,17 @@ jobs:
152155
run: |
153156
VERSION="${{ env.SDK_VERSION }}"
154157
158+
if git ls-remote --tags origin "refs/tags/$VERSION" | grep -q .; then
159+
echo "Tag $VERSION already exists, skipping tagging and release creation."
160+
exit 0
161+
fi
162+
155163
if [[ "$VERSION" == *"alpha"* ]]; then
156164
PRERELEASE="--prerelease"
157-
CHANNEL="alpha"
158165
elif [[ "$VERSION" == *"beta"* ]]; then
159166
PRERELEASE="--prerelease"
160-
CHANNEL="beta"
161167
else
162168
PRERELEASE=""
163-
CHANNEL="current"
164169
fi
165170
166171
git config user.name "github-actions[bot]"

0 commit comments

Comments
 (0)