mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 02:00:43 +00:00
Merge pull request #310 from weaveworks/259-rebuild-ui-image
Detect when to rebuild cached build image.
This commit is contained in:
39
bin/rebuild-ui-build-image
Executable file
39
bin/rebuild-ui-build-image
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
CACHE_DIR=$HOME/docker/
|
||||
|
||||
rebuild() {
|
||||
rm $CACHE_DIR/*
|
||||
make scope_ui_build.tar
|
||||
mkdir -p $CACHE_DIR
|
||||
mv scope_ui_build.tar $CACHE_DIR/image-$CIRCLE_SHA1
|
||||
}
|
||||
|
||||
# Get the revision the cached image was build at
|
||||
cached_image_rev() {
|
||||
find $CACHE_DIR -name 'image-*' -type f | sed 's/[^\-]*\-//'
|
||||
}
|
||||
|
||||
# Have there been any revision beween $1 and $2
|
||||
has_changes() {
|
||||
local rev1=$1
|
||||
local rev2=$2
|
||||
local changes=$(git log --oneline $rev1..$rev2 -- client/Dockerfile client/gulpfile.js client/package.json | wc -l)
|
||||
[ "$changes" -gt 0 ]
|
||||
}
|
||||
|
||||
cached_revision=$(cached_image_rev)
|
||||
if [ -z "$cached_revision" ]; then
|
||||
rebuild
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if has_changes $cached_revision $CIRCLE_SHA1 ; then
|
||||
rebuild
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# we didn't rebuild; import cached version
|
||||
docker load -i $CACHE_DIR/image-*
|
||||
@@ -18,13 +18,7 @@ dependencies:
|
||||
- "~/docker"
|
||||
override:
|
||||
- sudo apt-get --only-upgrade install tar
|
||||
- if [[ -e "$SCOPE_UI_BUILD" ]]; then
|
||||
docker load -i $SCOPE_UI_BUILD;
|
||||
else
|
||||
make scope_ui_build.tar;
|
||||
mkdir -p $(dirname "$SCOPE_UI_BUILD");
|
||||
mv scope_ui_build.tar $(dirname "$SCOPE_UI_BUILD");
|
||||
fi
|
||||
- bin/rebuild-ui-build-image
|
||||
- curl https://sdk.cloud.google.com | bash
|
||||
- test -z "$SECRET_PASSWORD" || bin/setup-circleci-secrets "$SECRET_PASSWORD"
|
||||
post:
|
||||
|
||||
Reference in New Issue
Block a user