#!/bin/sh # This script looks for bundles built by make.sh, and releases them on a public S3 bucket. # # Bundles should be available for the VERSION string passed as argument. # # The correct way to call this script is inside a container built by the official Dockerfile # at the root of the docker source code. The Dockerfile, make.sh and release.sh should all # be from the same source code revision. set -x set -e # Print a usage message and exit. usage() { echo "Usage: $0 VERSION BUCKET" echo "For example: $0 0.5.1-dev sandbox.get.docker.io" exit 1 } VERSION=$1 BUCKET=$2 [ -z "$VERSION" ] && usage [ -z "$BUCKET" ] && usage setup_s3() { # Try creating the bucket. Ignore errors (it might already exist). s3cmd --acl-public mb $BUCKET 2>/dev/null || true } # write_to_s3 uploads the contents of standard input to the specified S3 url. write_to_s3() { DEST=$1 F=`mktemp` cat > $F s3cmd --acl-public put $F $DEST rm -f $F } s3_url() { echo "http://$BUCKET.s3.amazonaws.com" } # Upload the 'ubuntu' bundle to S3: # 1. A full APT repository is published at $BUCKET/ubuntu/ # 2. Instructions for using the APT repository are uploaded at $BUCKET/ubuntu/info release_ubuntu() { s3cmd --acl-public --verbose --delete-removed --follow-symlinks sync bundles/$VERSION/ubuntu/apt/ s3://$BUCKET/ubuntu/ cat <