فهرست منبع

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

Solomon Hykes 12 سال پیش
والد
کامیت
a0478f726d
2فایلهای تغییر یافته به همراه51 افزوده شده و 17 حذف شده
  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