You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.0 KiB
Bash
60 lines
2.0 KiB
Bash
#!/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\"}" \
|
|
-f \
|
|
-X \
|
|
POST "${ARTIFACTORY_SERVER}/api/build/distribute/${buildName}/${buildNumber}" > /dev/null || { echo "Failed to publish" >&2; exit 1; }
|
|
|
|
curl \
|
|
-s \
|
|
--connect-timeout 240 \
|
|
--max-time 2700 \
|
|
-u ${BINTRAY_USERNAME}:${BINTRAY_PASSWORD} \
|
|
-H "Content-Type: application/json" -d "{\"username\": \"${SONATYPE_USERNAME}\", \"password\": \"${SONATYPE_PASSWORD}\"}" \
|
|
-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 "Promotion complete"
|