# cleanup.sh if needed
factory.addStep(FileDownload(
name = "dlcleanupsh",
- mastersrc = scripts_dir + '/cleanup-phase1.sh',
+ mastersrc = scripts_dir + '/cleanup.sh',
slavedest = "../cleanup.sh",
mode = 0755,
doStepIf = IsCleanupRequested))
# prepare workspace
factory.addStep(FileDownload(
- mastersrc = scripts_dir + '/cleanup-phase2.sh',
- slavedest = "cleanup.sh",
+ mastersrc = scripts_dir + '/cleanup.sh',
+ slavedest = "../cleanup.sh",
mode = 0755))
if not persistent:
name = "cleanold",
description = "Cleaning previous builds",
command = ["./cleanup.sh", buildbot_url, WithProperties("%(slavename)s"), WithProperties("%(buildername)s"), "full"],
+ workdir = ".",
haltOnFailure = True,
timeout = 2400))
name = "cleanup",
description = "Cleaning work area",
command = ["./cleanup.sh", buildbot_url, WithProperties("%(slavename)s"), WithProperties("%(buildername)s"), "single"],
+ workdir = ".",
haltOnFailure = True,
timeout = 2400))
+++ /dev/null
-#!/bin/bash
-
-export LC_ALL=C
-
-master_url="$1"
-current_slave="$2"
-current_builder="$3"
-current_mode="$4"
-
-running_builders="$(wget -qO- "${master_url%/}/json/slaves/$current_slave?as_text=1" | sed -ne 's,^.*"builderName": "\(.*\)".*$,\1,p')"
-
-is_running() {
- local running_builder
- for running_builder in $running_builders; do
- if [ "${running_builder//\//_}" = "${1//\//_}" ]; then
- return 0
- fi
- done
- return 1
-}
-
-do_cleanup() {
- printf "Cleaning up '$current_builder' work directory"
-
- if [ -d .git ]; then
- echo " using git"
- git reset --hard HEAD
- git clean -f -d -x
- else
- find . -mindepth 1 -maxdepth 1 | while read entry; do
- rm -vrf "$entry" | while read entry2; do
- case "$entry2" in *directory:*)
- printf "."
- esac
- done
- done
- fi
-
- echo ""
-}
-
-#
-# Sanity check, current builder should be in running builders list
-#
-
-if ! is_running "$current_builder"; then
- echo "Current builder '$current_builder' not found in current builders list, aborting cleanup."
- exit 1
-fi
-
-
-#
-# Clean up leftovers
-#
-
-if [ "$current_mode" = full ]; then
-(
- if ! flock -x -w 2700 200; then
- echo "Unable to obtain exclusive lock, aborting cleanup."
- exit 1
- fi
-
- for build_dir in ../*; do
-
- build_dir="$(readlink -f "$build_dir")"
-
- if [ -z "$build_dir" ] || [ ! -d "$build_dir/build/build_dir" ]; then
- continue
- fi
-
- current_builder="${build_dir##*/}"
-
- if is_running "$current_builder"; then
- echo "Skipping currently active '$current_builder' work directory."
- continue
- fi
-
- (
- cd "$build_dir/build"
-
- if [ -d build_dir ]; then
- do_cleanup
- else
- echo "Skipping clean '$current_builder' work directory."
- fi
- )
- done
-
-) 200>../cleanup.lock
-
-#
-# Clean up current build
-#
-
-else
- if [ -d build ]; then (
- cd build
- do_cleanup
- ); fi
-fi
-
-exit 0
+++ /dev/null
-#!/bin/bash
-
-export LC_ALL=C
-
-buildbot_url="$1"
-current_slave="$2"
-current_builder="$3"
-current_mode="$4"
-
-running_builders="$(wget -qO- "${buildbot_url%/}/json/slaves/$current_slave?as_text=1" | sed -ne 's,^.*"builderName": "\(.*\)".*$,\1,p')"
-
-find /tmp/ -maxdepth 1 -mtime +1 '(' -name 'npm-*' -or -name 'jsmake-*' ')' -print0 | xargs -0 -r rm -vr
-
-is_running() {
- local running_builder
- for running_builder in $running_builders; do
- if [ "${running_builder//\//_}" = "${1//\//_}" ]; then
- return 0
- fi
- done
- return 1
-}
-
-do_cleanup() {
- printf "Cleaning up '$current_builder' work directory"
-
- rm -f cleanup.sh
- rm -vrf sdk/ | while read entry; do
- case "$entry" in *directory:*)
- printf "."
- esac
- done
-
- echo ""
-}
-
-#
-# Sanity check, current builder should be in running builders list
-#
-
-if ! is_running "$current_builder"; then
- echo "Current builder '$current_builder' not found in current builders list, aborting cleanup."
- exit 1
-fi
-
-
-#
-# Clean up leftovers
-#
-
-if [ "$current_mode" = full ]; then
-(
- if ! flock -x -w 2700 200; then
- echo "Unable to obtain exclusive lock, aborting cleanup."
- exit 1
- fi
-
- for build_dir in ../../*; do
-
- build_dir="$(readlink -f "$build_dir")"
-
- if [ -z "$build_dir" ] || [ ! -d "$build_dir/build/sdk" ]; then
- continue
- fi
-
- current_builder="${build_dir##*/}"
-
- if is_running "$current_builder"; then
- echo "Skipping currently active '$current_builder' work directory."
- continue
- fi
-
- (
- cd "$build_dir/build"
-
- #if [ -n "$(git status --porcelain | grep -v update_hostkey.sh | grep -v cleanup.sh)" ]; then
- if [ -d sdk ]; then
- do_cleanup
- else
- echo "Skipping clean '$current_builder' work directory."
- fi
- )
- done
-
-) 200>../../cleanup.lock
-
-#
-# Clean up current build
-#
-
-else
- do_cleanup
-fi
-
-exit 0
--- /dev/null
+#!/bin/bash
+
+export LC_ALL=C
+
+master_url="$1"
+current_slave="$2"
+current_builder="$3"
+current_mode="$4"
+
+running_builders="$(wget -qO- "${master_url%/}/json/slaves/$current_slave?as_text=1" | sed -ne 's,^.*"builderName": "\(.*\)".*$,\1,p')"
+
+find /tmp/ -maxdepth 1 -mtime +1 '(' -name 'npm-*' -or -name 'jsmake-*' ')' -print0 | xargs -0 -r rm -vr
+
+is_running() {
+ local running_builder
+ for running_builder in $running_builders; do
+ if [ "${running_builder//\//_}" = "${1//\//_}" ]; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+do_cleanup() {
+ printf "Cleaning up '$current_builder' work directory"
+
+ if [ -d .git ]; then
+ echo " using git"
+ git reset --hard HEAD
+ git clean -f -d -x
+ else
+ find . -mindepth 1 -maxdepth 1 | while read entry; do
+ rm -vrf "$entry" | while read entry2; do
+ case "$entry2" in *directory[:\ ]*)
+ printf "."
+ esac
+ done
+ done
+ fi
+
+ echo ""
+}
+
+#
+# Sanity check, current builder should be in running builders list
+#
+
+if ! is_running "$current_builder"; then
+ echo "Current builder '$current_builder' not found in current builders list, aborting cleanup."
+ exit 1
+fi
+
+
+#
+# Clean up leftovers
+#
+
+if [ "$current_mode" = full ]; then
+(
+ if ! flock -x -w 2700 200; then
+ echo "Unable to obtain exclusive lock, aborting cleanup."
+ exit 1
+ fi
+
+ for build_dir in ../*; do
+
+ build_dir="$(readlink -f "$build_dir")"
+
+ if [ -z "$build_dir" ] || [ ! -d "$build_dir/build" ]; then
+ continue
+ fi
+
+ current_builder="${build_dir##*/}"
+
+ if is_running "$current_builder"; then
+ echo "Skipping currently active '$current_builder' work directory."
+ continue
+ fi
+
+ (
+ cd "$build_dir/build"
+ do_cleanup
+ )
+ done
+
+) 200>../cleanup.lock
+
+#
+# Clean up current build
+#
+
+else
+ if [ -d build ]; then (
+ cd build
+ do_cleanup
+ ); fi
+fi
+
+exit 0