github.com/stevenmatthewt/agent@v3.5.4+incompatible/.buildkite/steps/publish-to-s3.sh (about) 1 #!/usr/bin/env bash 2 3 set -eo pipefail 4 5 dry_run() { 6 if [[ "${DRY_RUN:-}" == "false" ]] ; then 7 "$@" 8 else 9 echo "[dry-run] $*" 10 fi 11 } 12 13 version=$(buildkite-agent meta-data get "agent-version") 14 build=$(buildkite-agent meta-data get "agent-version-build") 15 artifacts_build=$(buildkite-agent meta-data get "agent-artifacts-build") 16 17 if [[ "$CODENAME" == "experimental" ]]; then 18 version="$version.$build" 19 fi 20 21 echo "--- :package: Downloading built binaries from build ${artifacts_build}" 22 23 rm -rf pkg/* 24 buildkite-agent artifact download --build "$artifacts_build" "pkg/buildkite-agent-*" . 25 cd pkg 26 27 echo "--- :s3: Publishing $version to download.buildkite.com" 28 29 s3_base_url="s3://download.buildkite.com/agent/$CODENAME" 30 31 for binary in *; do 32 binary_s3_url="$s3_base_url/$version/$binary" 33 34 echo "--- :s3: Publishing $binary to $binary_s3_url" 35 dry_run aws s3 --region "us-east-1" cp --acl "public-read" "$binary" "$binary_s3_url" 36 37 echo "Calculating SHA256" 38 sha256sum "$binary" | awk '{print $1}' > "$binary.sha256" 39 40 echo "Publishing $binary.sha256 to $binary_s3_url.sha256" 41 dry_run aws s3 cp --region "us-east-1" --acl "public-read" --content-type "text/plain" "$binary.sha256" "$binary_s3_url.sha256" 42 done 43 44 echo "--- :s3: Copying /$version to /latest" 45 46 latest_version=$(aws s3 ls --region "us-east-1" "$s3_base_url/" | grep PRE | awk '{print $2}' | awk -F '/' '{print $1}' | ruby ../scripts/latest_version.rb) 47 latest_version_s3_url="$s3_base_url/$latest_version/" 48 latest_s3_url="$s3_base_url/latest/" 49 50 echo "Copying $latest_version_s3_url to $latest_s3_url" 51 52 dry_run aws s3 cp --region "us-east-1" --acl "public-read" --recursive "$latest_version_s3_url" "$latest_s3_url" 53 54 echo "--- :llama::sparkles::llama: All done!"