aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMartin André <martin.andre@kvhasia.com>2015-02-26 16:57:18 +0900
committerMartin André <martin.andre@kvhasia.com>2015-02-27 10:18:30 +0900
commit9ad8b259f8a23d472069da9dfa135632e620708b (patch)
tree3ddbb7c8474cb26b020e08b102d7cac926e4e83f /tools
parent140942944735289a5b9ce422cc43557d0cd0b031 (diff)
downloadkolla-9ad8b259f8a23d472069da9dfa135632e620708b.tar.gz
kolla-9ad8b259f8a23d472069da9dfa135632e620708b.zip
Have build scripts work in copies of kolla
Make the build scripts work in copies of Kolla so that developers can continue working while a build is is progress, which can be very long in the case of build-all-docker-images. Change-Id: I1b5d9b59ed34dfa622a42495e07d9a1d2ecde86e
Diffstat (limited to 'tools')
-rwxr-xr-xtools/build-all-docker-images18
-rwxr-xr-xtools/build-docker-image2
2 files changed, 14 insertions, 6 deletions
diff --git a/tools/build-all-docker-images b/tools/build-all-docker-images
index 2780d50e8..f8ae9f0b6 100755
--- a/tools/build-all-docker-images
+++ b/tools/build-all-docker-images
@@ -2,7 +2,13 @@
# Depends on bash 4 and gawk
TOPDIR=$(git rev-parse --show-toplevel)
-DOCKERDIR="$TOPDIR/docker"
+# Work in a temp dir so that developers can continue working while a build is
+# in progress
+WORKDIR=$(mktemp -d /tmp/kolla-workdir.XXXXXXXXXX)
+# Remove $WORKDIR otherwise $TOPDIR is copied *inside* of it
+rm -rf $WORKDIR
+cp -r "$TOPDIR" $WORKDIR
+DOCKERDIR="$WORKDIR/docker"
declare -A dependency
declare -A img_dirs
@@ -31,7 +37,7 @@ function has_changed {
# We don't really care about the order of the $FROM and $TO parameters, all
# we need is the list of changed files between the revisions, or HEAD if
# only one of them is specified
- [[ -z $FROM && -z $TO ]] || git diff --name-only $FROM $TO | grep -q "${img_dirs[$image]#$TOPDIR/}"
+ [[ -z $FROM && -z $TO ]] || git diff --name-only $FROM $TO | grep -q "${img_dirs[$image]#$WORKDIR/}"
}
function requires_build {
@@ -64,7 +70,7 @@ function init_image {
local img_dir=$1
set_defaults
- [ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf
+ [ -f $WORKDIR/.buildconf ] && . $WORKDIR/.buildconf
[ -f $img_dir/.buildconf ] && . $img_dir/.buildconf
[ -n "$FORCE_NAMESPACE" ] && NAMESPACE=$FORCE_NAMESPACE
@@ -105,6 +111,7 @@ function print_summary {
function interrupted {
info "Interrupted..."
print_summary
+ rm -rf $WORKDIR
exit 1
}
@@ -117,9 +124,9 @@ Options:
--from <git-revision>
--to <git-revision>
-$($TOPDIR/tools/build-docker-image --help)
+$($WORKDIR/tools/build-docker-image --help)
EOF
- printf "%s\n" "${HELP/$TOPDIR\/tools\/build-docker-image/$0}"
+ printf "%s\n" "${HELP/$WORKDIR\/tools\/build-docker-image/$0}"
}
trap 'interrupted' INT
@@ -173,3 +180,4 @@ for image in "${!img_dirs[@]}"; do
done
print_summary
+rm -rf $WORKDIR
diff --git a/tools/build-docker-image b/tools/build-docker-image
index 82d210d0c..f174a11f4 100755
--- a/tools/build-docker-image
+++ b/tools/build-docker-image
@@ -88,7 +88,7 @@ if [ "$MODE" = "release" ]; then
echo
fi
-TMPDIR=$(mktemp -d /tmp/output.XXXXXXXXXX)
+TMPDIR=$(mktemp -d /tmp/kolla-build.XXXXXXXXXX)
cp -aL $IMGDIR/* $TMPDIR
if ! docker build ${BUILDFLAGS} -t "$FULLIMAGE" $TMPDIR; then