浏览代码

Merge pull request #17714 from mikedougherty/cs-release-fixes

Fixes for release scripts
Tianon Gravi 9 年之前
父节点
当前提交
ae1fadeb96
共有 5 个文件被更改,包括 31 次插入17 次删除
  1. 1 1
      contrib/reprepro/suites.sh
  2. 1 1
      hack/make.sh
  3. 1 1
      hack/make/.build-deb/control
  4. 1 0
      hack/make/.build-rpm/docker-engine.spec
  5. 27 14
      hack/make/release-deb

+ 1 - 1
contrib/reprepro/suites.sh

@@ -5,7 +5,7 @@ cd "$(dirname "$BASH_SOURCE")/../.."
 
 targets_from() {
        git fetch -q https://github.com/docker/docker.git "$1"
-       git ls-tree -r --name-only origin/master contrib/builder/deb | grep '/Dockerfile$' | sed -r 's!^contrib/builder/deb/|-debootstrap|/Dockerfile$!!g'
+       git ls-tree -r --name-only "$(git rev-parse FETCH_HEAD)" contrib/builder/deb | grep '/Dockerfile$' | sed -r 's!^contrib/builder/deb/|-debootstrap|/Dockerfile$!!g'
 }
 
 release_branch=$(git ls-remote --heads https://github.com/docker/docker.git | awk -F 'refs/heads/' '$2 ~ /^release/ { print $2 }' | sort -V | tail -1)

+ 1 - 1
hack/make.sh

@@ -257,7 +257,7 @@ main() {
 	# We want this to fail if the bundles already exist and cannot be removed.
 	# This is to avoid mixing bundles from different versions of the code.
 	mkdir -p bundles
-	if [ -e "bundles/$VERSION" ]; then
+	if [ -e "bundles/$VERSION" ] && [ -z "$KEEPBUNDLE" ]; then
 		echo "bundles/$VERSION already exists. Removing."
 		rm -fr "bundles/$VERSION" && mkdir "bundles/$VERSION" || exit 1
 		echo

+ 1 - 1
hack/make/.build-deb/control

@@ -14,7 +14,7 @@ Recommends: aufs-tools,
             xz-utils,
             ${apparmor:Recommends},
             ${yubico:Recommends}
-Conflicts: docker (<< 1.5~), docker.io, lxc-docker, lxc-docker-virtual-package
+Conflicts: docker (<< 1.5~), docker.io, lxc-docker, lxc-docker-virtual-package, docker-engine-cs
 Description: Docker: the open-source application container engine
  Docker is an open source project to build, ship and run any application as a
  lightweight container

+ 1 - 0
hack/make/.build-rpm/docker-engine.spec

@@ -91,6 +91,7 @@ Requires(pre): %{name}-selinux >= %{epoch}:%{version}-%{release}
 # conflicting packages
 Conflicts: docker
 Conflicts: docker-io
+Conflicts: docker-engine-cs
 
 %description
 Docker is an open source project to build, ship and run any application as a

+ 27 - 14
hack/make/release-deb

@@ -23,7 +23,29 @@ mkdir -p "$APTDIR/conf" "$APTDIR/db"
 
 # supported arches/sections
 arches=( amd64 i386 )
-components=( main testing experimental )
+
+# Preserve existing components but don't add any non-existing ones
+for component in main testing experimental ; do
+	if ls "$APTDIR/dists/*/$component" >/dev/null 2>&1 ; then
+		components+=( $component )
+	fi
+done
+
+# set the component for the version being released
+component="main"
+
+if [[ "$VERSION" == *-rc* ]]; then
+	component="testing"
+fi
+
+if [ "$DOCKER_EXPERIMENTAL" ] || [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then
+	component="experimental"
+fi
+
+# Make sure our component is in the list of components
+if [[ ! "${components[*]}" =~ $component ]] ; then
+	components+=( $component )
+fi
 
 # create/update apt-ftparchive file
 if [ ! -f "$APTDIR/conf/apt-ftparchive.conf" ]; then
@@ -53,7 +75,7 @@ if [ ! -f "$APTDIR/conf/apt-ftparchive.conf" ]; then
 	for suite in $(exec contrib/reprepro/suites.sh); do
 		cat <<-EOF
 		Tree "dists/${suite}" {
-			Sections "main testing experimental";
+			Sections "${components[*]}";
 			Architectures "${arches[*]}";
 		}
 
@@ -70,17 +92,6 @@ if [ ! -f "$APTDIR/conf/docker-engine-release.conf" ]; then
 	EOF
 fi
 
-# set the component for the version being released
-component="main"
-
-if [[ "$VERSION" == *-rc* ]]; then
-	component="testing"
-fi
-
-if [ $DOCKER_EXPERIMENTAL ] || [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then
-	component="experimental"
-fi
-
 # release the debs
 for dir in contrib/builder/deb/*/; do
 	version="$(basename "$dir")"
@@ -91,7 +102,7 @@ for dir in contrib/builder/deb/*/; do
 	# if we have a $GPG_PASSPHRASE we may as well
 	# dpkg-sign before copying the deb into the pool
 	if [ ! -z "$GPG_PASSPHRASE" ]; then
-		dpkg-sig -g "--passphrase $GPG_PASSPHRASE" \
+		dpkg-sig -g "--no-tty --passphrase '$GPG_PASSPHRASE'" \
 			-k "$GPG_KEYID" --sign builder "${DEBFILE[@]}"
 	fi
 
@@ -100,6 +111,7 @@ for dir in contrib/builder/deb/*/; do
 	cp "${DEBFILE[@]}" "$APTDIR/pool/$component/d/docker-engine/"
 
 	# update the filelist for this codename/component
+	mkdir -p "$APTDIR/dists/$codename/$component"
 	find "$APTDIR/pool/$component" \
 		-name *~${codename#*-}*.deb > "$APTDIR/dists/$codename/$component/filelist"
 done
@@ -122,6 +134,7 @@ for dir in contrib/builder/deb/*/; do
 		"$APTDIR/dists/$codename" > "$APTDIR/dists/$codename/Release"
 
 	for arch in "${arches[@]}"; do
+		mkdir -p "$APTDIR/dists/$codename/$component/binary-$arch"
 		apt-ftparchive \
 			-o "APT::FTPArchive::Release::Codename=$codename" \
 			-o "APT::FTPArchive::Release::Suite=$codename" \