From a834461752f9ac4631c5fd02eece08b9c1396d0c Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 5 Jul 2019 20:08:31 +0300 Subject: [PATCH] Fix upload artifacts script to fail, add release upload script This should improve reliability --- .travis.yml | 6 ++++++ upload-artifacts.sh | 32 ++++++++++++++++++++++++++++---- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8c6ad7c4..72e70cf8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -92,3 +92,9 @@ deploy: on: branch: master condition: "$DEPLOY_BINARIES = yes" + - provider: script + script: bash upload-artifacts.sh release + skip_cleanup: true + on: + tags: true + condition: "$DEPLOY_BINARIES = yes" diff --git a/upload-artifacts.sh b/upload-artifacts.sh index d26c82d2..188c6010 100644 --- a/upload-artifacts.sh +++ b/upload-artifacts.sh @@ -8,10 +8,11 @@ folder=`mktemp -u tmp.XXXXXXXXXXXXXXX` aptly_user="$APTLY_USER" aptly_password="$APTLY_PASSWORD" aptly_api="https://internal.aptly.info" +version=`make version` for file in $packages; do echo "Uploading $file..." - curl -sS -X POST -F "file=@$file" -u $aptly_user:$aptly_password ${aptly_api}/api/files/$folder + curl -fsS -X POST -F "file=@$file" -u $aptly_user:$aptly_password ${aptly_api}/api/files/$folder echo done @@ -20,16 +21,39 @@ if [[ "$1" = "nightly" ]]; then aptly_published=s3:repo.aptly.info:./nightly echo "Adding packages to $aptly_repository..." - curl -sS -X POST -u $aptly_user:$aptly_password ${aptly_api}/api/repos/$aptly_repository/file/$folder + curl -fsS -X POST -u $aptly_user:$aptly_password ${aptly_api}/api/repos/$aptly_repository/file/$folder echo echo "Updating published repo..." - curl -sS -X PUT -H 'Content-Type: application/json' --data \ + curl -fsS -X PUT -H 'Content-Type: application/json' --data \ '{"AcquireByHash": true, "Signing": {"Batch": true, "Keyring": "aptly.repo/aptly.pub", "secretKeyring": "aptly.repo/aptly.sec", "PassphraseFile": "aptly.repo/passphrase"}}' \ -u $aptly_user:$aptly_password ${aptly_api}/api/publish/$aptly_published echo fi -curl -sS -X DELETE -u $aptly_user:$aptly_password ${aptly_api}/api/files/$folder +if [[ "$1" = "release" ]]; then + aptly_repository=aptly-repository + aptly_snapshot=aptly-$version + aptly_published=s3:repo.aptly.info:./squeeze + + echo "Adding packages to $aptly_repository..." + curl -fsS -X POST -u $aptly_user:$aptly_password ${aptly_api}/api/repos/$aptly_repository/file/$folder + echo + + echo "Creating snapshot $aptly_snapshot from repo $aptly_repository..." + curl -fsS -X POST -u $aptly_user:$aptly_password -H 'Content-Type: application/json' --data \ + "{\"Name\":\"$aptly_snapshot\"}" ${aptly_api}/api/repos/$aptly_repository/snapshots + echo + + echo "Switching published repo to use snapshot $aptly_snapshot..." + curl -fsS -X PUT -H 'Content-Type: application/json' --data \ + "{\"AcquireByHash\": true, \"Snapshots\": [{\"Component\": \"main\", \"Name\": \"$aptly_snapshot\"}], + \"Signing\": {\"Batch\": true, \"Keyring\": \"aptly.repo/aptly.pub\", + \"secretKeyring\": \"aptly.repo/aptly.sec\", \"PassphraseFile\": \"aptly.repo/passphrase\"}}" \ + -u $aptly_user:$aptly_password ${aptly_api}/api/publish/$aptly_published + echo +fi + +curl -fsS -X DELETE -u $aptly_user:$aptly_password ${aptly_api}/api/files/$folder echo