blob: c84ab97560c9acd49d2ef0f2cc41160989ba8660 [file] [log] [blame]
#!/bin/bash
# Usage: pushToBintray.sh RPM
# The following environment variables must be set:
# BINTRAY_CREDS (In the form <username>:<api-key>)
# MESOS_TAG (1.4.0-rc1, 1.4.0, etc.)
#
# The following default to "apache" if not specified.
# BINTRAY_ORG
#
# The following default to "mesos" if not specified.
# BINTRAY_PKG
# BINTRAY_REPO
set -o errexit -o nounset
API=https://api.bintray.com
BINTRAY_ORG=${BINTRAY_ORG:-apache}
BINTRAY_REPO=${BINTRAY_REPO:-mesos}
BINTRAY_PKG=${BINTRAY_PKG:-mesos}
PKG_PATH=$1
PKG_FILENAME=$(basename $PKG_PATH)
REPO_SUFFIX=""
MESOS_VERSION=${MESOS_TAG%[-]*}
case "$PKG_FILENAME" in
*.pre.*git*) REPO_SUFFIX="-unstable" ;;
*-rc*) REPO_SUFFIX="-testing" ;;
esac
REPO_PATH=""
case "$PKG_FILENAME" in
*.el7.src.rpm) REPO_PATH=el7${REPO_SUFFIX}/SRPMS ;;
*.el6.src.rpm) REPO_PATH=el6${REPO_SUFFIX}/SRPMS ;;
*.el7.x86_64.rpm) REPO_PATH=el7${REPO_SUFFIX}/x86_64 ;;
*.el6.x86_64.rpm) REPO_PATH=el6${REPO_SUFFIX}/x86_64 ;;
*) echo "Do not know how to handle file ${PKG_PATH}."; exit 1 ;;
esac
# Refer to https://bintray.com/docs/api/#_upload_content for Bintray upload API.
# The following command is inspired from an example script provided by bintray:
# https://github.com/bintray/bintray-examples/blob/master/bash-example/pushToBintray.sh
echo "Uploading ${PKG_FILENAME} to ${API}/content/${BINTRAY_ORG}/${BINTRAY_REPO}/${REPO_PATH}/${PKG_FILENAME}..."
result=$(curl \
-u${BINTRAY_CREDS} \
-H Content-Type:application/json \
-H Accept:application/json \
--write-out %{http_code} \
--silent --output /dev/null \
-T ${PKG_PATH} \
-H X-Bintray-Package:${BINTRAY_PKG} \
-H X-Bintray-Version:${MESOS_VERSION} \
-H X-Bintray-Publish:0 \
${API}/content/${BINTRAY_ORG}/${BINTRAY_REPO}/${REPO_PATH}/${PKG_FILENAME})
if [ $result -ne 201 ]; then
echo "Package ${PKG_FILENAME} upload to ${API}/content/${BINTRAY_ORG}/${BINTRAY_REPO}/${REPO_PATH}/${PKG_FILENAME} failed with status ${result}"
exit 1
else
echo "Package ${PKG_FILEAME} uploaded successfully, don't forget to head over to bintray to publish the uploaded artifacts."
fi