mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fixes for release scripts:
Add a flag to allow keeping bundles around (helps with CI) Fix several problems in repo make targets * quote DOCKER_EXPERIMENTAL variable * pass-through arguments for gpg provided to dpkg-sig are now quoted properly, so passphrases with shell-interpolated symbols can be used * when determining deb suites, don't rely on 'origin' to be github.com/docker/docker Fix some issues with deb repository creation from scratch * Don't add empty components to the repository configuration as they will cause failure when generating. Add old docker-engine-cs name to package conflicts Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
This commit is contained in:
parent
0d98e2470f
commit
a15b67b1af
5 changed files with 31 additions and 17 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" \
|
||||
|
|
Loading…
Reference in a new issue