Allow maven central sync to run several times

Update the "sync to maven central" CI job so that it can be rerun if
necessary. We now first check if artifacts are already published before
triggering the sync from Bintray.

Closes gh-16866
pull/17391/head
Phillip Webb 6 years ago
parent 84c6313332
commit 4894affbb6

@ -7,14 +7,28 @@ groupId=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].i
version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' )
echo "Syncing ${buildName}/${buildNumber} to Maven Central" echo "Syncing ${buildName}/${buildNumber} to Maven Central"
curl \
publishStatus=$(curl \
-s \ -s \
--connect-timeout 240 \ -o /dev/null \
--max-time 2700 \ -I \
-u ${BINTRAY_USERNAME}:${BINTRAY_API_KEY} \ -w "%{http_code}"
-H "Content-Type: application/json" -d "{\"username\": \"${SONATYPE_USER_TOKEN}\", \"password\": \"${SONATYPE_PASSWORD_TOKEN}\"}" \ "https://oss.sonatype.org/service/local/repositories/releases/content/org/springframework/boot/spring-boot/${version}/spring-boot-${version}.jar.sha1")
-f \
-X \ if [ ${publishStatus} == "200" ]; then
POST "https://api.bintray.com/maven_central_sync/${BINTRAY_SUBJECT}/${BINTRAY_REPO}/${groupId}/versions/${version}" > /dev/null || { echo "Failed to sync" >&2; exit 1; } echo "Already published to Sonatype"
else
echo "Calling Bintray to sync to Sonatype"
curl \
-s \
--connect-timeout 240 \
--max-time 2700 \
-u ${BINTRAY_USERNAME}:${BINTRAY_API_KEY} \
-H "Content-Type: application/json" -d "{\"username\": \"${SONATYPE_USER_TOKEN}\", \"password\": \"${SONATYPE_PASSWORD_TOKEN}\"}" \
-f \
-X \
POST "https://api.bintray.com/maven_central_sync/${BINTRAY_SUBJECT}/${BINTRAY_REPO}/${groupId}/versions/${version}" > /dev/null || { echo "Failed to sync" >&2; exit 1; }
fi
echo "Sync complete" echo "Sync complete"
echo $version > version/version echo $version > version/version

Loading…
Cancel
Save