From 943a0fd03706734f23de976568e6c09fe90ea94b Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 28 Sep 2018 21:37:08 +0200 Subject: [PATCH] Cleanup old snapshots on Bintray --- .travis/build.sh | 5 + .../cleanup-bintray-snapshots.sh | 117 ++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 net.sourceforge.pmd.eclipse.p2updatesite/cleanup-bintray-snapshots.sh diff --git a/.travis/build.sh b/.travis/build.sh index 8dbd82f1..d05f07c5 100644 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -18,4 +18,9 @@ echo "TRAVIS_ALLOW_FAILURE: $TRAVIS_ALLOW_FAILURE" if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_SECURE_ENV_VARS}" = "true" ]; then # Uploading the update site to Bintray ./mvnw verify -DskipTests -Psnapshot-properties -Prelease-composite + # Cleanup old snapshots + ( + cd net.sourceforge.pmd.eclipse.p2updatesite + ./cleanup-bintray-snapshots.sh + ) fi diff --git a/net.sourceforge.pmd.eclipse.p2updatesite/cleanup-bintray-snapshots.sh b/net.sourceforge.pmd.eclipse.p2updatesite/cleanup-bintray-snapshots.sh new file mode 100644 index 00000000..4cccd8cd --- /dev/null +++ b/net.sourceforge.pmd.eclipse.p2updatesite/cleanup-bintray-snapshots.sh @@ -0,0 +1,117 @@ +#!/bin/bash +set -e + +#Sample Usage: cleanup-bintray-snapshots.sh user apikey +API=https://api.bintray.com + +if [ -z $BINTRAY_API_KEY -o -z $BINTRAY_USER ]; then + # only take arguments, if there are now env variable set already + BINTRAY_API_KEY=$1 + BINTRAY_USER=$2 +fi + +if [ -z $BINTRAY_API_KEY -o -z $BINTRAY_USER ]; then + echo "Usage: $0 " + exit 1 +fi + +BINTRAY_REPO=pmd-eclipse-plugin +BINTRAY_OWNER=pmd + +BASE_PATH=pmd/pmd-eclipse-plugin/snapshots/updates/4.0 +BASE_URL=https://dl.bintray.com/${BASE_PATH} +BASE_PATH_SNAPSHOT_BUILDS=pmd/pmd-eclipse-plugin/snapshots/builds +ARTIFACTS_FILE=compositeArtifacts.xml +CONTENT_FILE=compositeContent.xml +WORKING_DIR=target/cleanup-bintray-snapshots +KEEP=5 +#DRY_RUN=echo + +mkdir -p ${WORKING_DIR} +pushd ${WORKING_DIR} + + +# download the metadata +curl ${BASE_URL}/${ARTIFACTS_FILE} > ${ARTIFACTS_FILE} +curl ${BASE_URL}/${CONTENT_FILE} > ${CONTENT_FILE} + +# we keep some versions +artifacts=$(grep " ${ARTIFACTS_FILE}.new +${DRY_RUN} curl -X PUT -u${BINTRAY_USER}:${BINTRAY_API_KEY} -T ${ARTIFACTS_FILE}.new https://api.bintray.com/content/${BASE_PATH}/${ARTIFACTS_FILE};publish=1 + + +content=$(grep " ${CONTENT_FILE}.new +${DRY_RUN} curl -X PUT -u${BINTRAY_USER}:${BINTRAY_API_KEY} -T ${CONTENT_FILE}.new https://api.bintray.com/content/${BASE_PATH}/${CONTENT_FILE};publish=1 + + +popd