Browse Source

dockerbuilder: upload most recent Ubuntu package (note version FOO might not yet be packaged at tag vFOO)

Solomon Hykes 12 years ago
parent
commit
a0478f726d
2 changed files with 51 additions and 17 deletions
  1. 10 4
      hack/dockerbuilder/Dockerfile
  2. 41 13
      hack/dockerbuilder/dockerbuilder

+ 10 - 4
hack/dockerbuilder/Dockerfile

@@ -2,10 +2,16 @@
 # uploading it to S3
 from	ubuntu:12.10
 run	apt-get update
-run	RUNLEVEL=1 DEBIAN_FRONTEND=noninteractive apt-get install -y -q s3cmd
-run	RUNLEVEL=1 DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang
-run	RUNLEVEL=1 DEBIAN_FRONTEND=noninteractive apt-get install -y -q git
-run	RUNLEVEL=1 DEBIAN_FRONTEND=noninteractive apt-get install -y -q build-essential
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q s3cmd
+# Packages required to checkout and build docker
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q git
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q build-essential
+# Packages required to build an ubuntu package
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q debhelper
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q autotools-dev
+copy	fake_initctl	/usr/local/bin/initctl
+run	DEBIAN_FRONTEND=noninteractive apt-get install -y -q devscripts
 copy	dockerbuilder	/usr/local/bin/dockerbuilder
 copy	s3cfg	/.s3cfg
 # run $img dockerbuilder $REVISION_OR_TAG $S3_ID $S3_KEY

+ 41 - 13
hack/dockerbuilder/dockerbuilder

@@ -4,22 +4,50 @@ set -e
 
 PACKAGE=github.com/dotcloud/docker
 
-if [ $# -lt 3 ]; then
-	echo "Usage: $0 REVISION AWS_ID AWS_KEY"
+if [ $# -gt 1 ]; then
+	echo "Usage: $0 [REVISION]"
 	exit 1
 fi
 
-export REVISION=$1 AWS_ID=$2 AWS_KEY=$3
+export REVISION=$1
 
-START=$(pwd)
-git clone "https://$PACKAGE" docker-checkout-$REVISION
-cd docker-checkout-$REVISION
-git checkout $REVISION
+if [ -z "$AWS_ID" ]; then
+	echo "Warning: environment variable AWS_ID is not set. Won't upload to S3."
+	NO_S3=1
+fi
+
+if [ -z "$AWS_KEY" ]; then
+	echo "Warning: environment variable AWS_KEY is not set. Won't upload to S3."
+	NO_S3=1
+fi
 
-make
-BUILDDIR=${START}/docker-$REVISION
-cp -R ./bin $BUILDDIR
+if [ -z "$GPG_KEY" ]; then
+	echo "Warning: environment variable GPG_KEY is not set. Ubuntu package upload will not succeed."
+	NO_UBUNTU=1
+fi
+
+if [ -z "$REVISION" ]; then
+	rm -fr docker-master
+	git clone https://github.com/dotcloud/docker docker-master
+	cd docker-master
+else 
+	rm -fr docker-$REVISION
+	git init docker-$REVISION
+	cd docker-$REVISION
+	git fetch -t https://github.com/dotcloud/docker $REVISION
+	git reset --hard FETCH_HEAD
+fi
 
-BUILD_ARCHIVE=${START}/docker-$REVISION.tgz
-tar -f $BUILD_ARCHIVE -C $(dirname $BUILDDIR) -zc $(basename $BUILDDIR)
-s3cmd -P put $BUILD_ARCHIVE s3://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-$REVISION.tgz
+if [ -z "$REVISION" ]; then
+	make release
+else
+	make release RELEASE_VERSION=$REVISION
+fi
+
+if [ -z "$NO_S3" ]; then
+	s3cmd -P put docker-$REVISION.tgz s3://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-$REVISION.tgz
+fi
+
+if [ -z "$NO_UBUNTU" ]; then
+	(cd packaging/ubuntu && make ubuntu)
+fi