mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-05-02 19:30:23 +01:00
a938c372ea
Due to timeouts while distributing release artifacts, this commit uses the async mode for distribution. Before syncing to maven central, we need to check if all the artifacts have been published to Bintray. This is done by hitting the Bintray API till we get the version or until a timeout is reached. Closes gh-12292
70 lines
2.2 KiB
Bash
Executable File
70 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
source $(dirname $0)/common.sh
|
|
|
|
buildName=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.name' )
|
|
buildNumber=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.number' )
|
|
groupId=$( 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/' )
|
|
|
|
|
|
if [[ $RELEASE_TYPE = "M" ]]; then
|
|
targetRepo="libs-milestone-local"
|
|
elif [[ $RELEASE_TYPE = "RC" ]]; then
|
|
targetRepo="libs-milestone-local"
|
|
elif [[ $RELEASE_TYPE = "RELEASE" ]]; then
|
|
targetRepo="libs-release-local"
|
|
else
|
|
echo "Unknown release type $RELEASE_TYPE" >&2; exit 1;
|
|
fi
|
|
|
|
echo "Promoting ${buildName}/${buildNumber} to ${targetRepo}"
|
|
|
|
curl \
|
|
-s \
|
|
--connect-timeout 240 \
|
|
--max-time 900 \
|
|
-u ${ARTIFACTORY_USERNAME}:${ARTIFACTORY_PASSWORD} \
|
|
-H "Content-type:application/json" \
|
|
-d "{\"status\": \"staged\", \"sourceRepo\": \"libs-staging-local\", \"targetRepo\": \"${targetRepo}\"}" \
|
|
-f \
|
|
-X \
|
|
POST "${ARTIFACTORY_SERVER}/api/build/promote/${buildName}/${buildNumber}" > /dev/null || { echo "Failed to promote" >&2; exit 1; }
|
|
|
|
if [[ $RELEASE_TYPE = "RELEASE" ]]; then
|
|
curl \
|
|
-s \
|
|
--connect-timeout 240 \
|
|
--max-time 2700 \
|
|
-u ${ARTIFACTORY_USERNAME}:${ARTIFACTORY_PASSWORD} \
|
|
-H "Content-type:application/json" \
|
|
-d "{\"sourceRepos\": [\"libs-release-local\"], \"targetRepo\" : \"spring-distributions\", \"async\":\"true\"}" \
|
|
-f \
|
|
-X \
|
|
POST "${ARTIFACTORY_SERVER}/api/build/distribute/${buildName}/${buildNumber}" > /dev/null || { echo "Failed to distribute" >&2; exit 1; }
|
|
|
|
echo "Waiting for artifacts to be published"
|
|
ARTIFACTS_PUBLISHED=false
|
|
WAIT_TIME=5
|
|
COUNTER=0
|
|
while [ $ARTIFACTS_PUBLISHED == "false" ] && [ $COUNTER -lt 24 ]; do
|
|
result=$(curl https://api.bintray.com/packages/${BINTRAY_SUBJECT}/${BINTRAY_REPO}/$groupId )
|
|
versions=$( echo $result | jq -r '.versions' )
|
|
exists=$(echo $versions | grep $version)
|
|
if [ $? -eq 0 ]; then
|
|
ARTIFACTS_PUBLISHED=true
|
|
fi
|
|
COUNTER=$(( $COUNTER + 1))
|
|
echo $COUNTER
|
|
sleep WAIT_TIME
|
|
done
|
|
if [ $ARTIFACTS_PUBLISHED == "false" ]; then
|
|
echo "Failed to publish"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
echo "Promotion complete"
|