treewide: merge phase1 and phase2 cleanup procedures
authorJo-Philipp Wich <jo@mein.io>
Thu, 18 Jul 2019 12:29:43 +0000 (14:29 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 18 Jul 2019 12:45:30 +0000 (14:45 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
phase1/master.cfg
phase2/master.cfg
scripts/cleanup-phase1.sh [deleted file]
scripts/cleanup-phase2.sh [deleted file]
scripts/cleanup.sh [new file with mode: 0755]

index 46e1a7259ad2c3488702ca2eceb4fc7050f69f38..d9ca8d8e8f35731e4459a71e071ce30143ff331d 100644 (file)
@@ -543,7 +543,7 @@ for target in targets:
        # 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))
index 2cfd557feb81f7c22d4777ef7b28597869d811c4..ed09c8b1b863e3b25342311239d99f68bd093743 100644 (file)
@@ -268,8 +268,8 @@ for arch in arches:
 
        # 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:
@@ -277,6 +277,7 @@ for arch in arches:
                        name = "cleanold",
                        description = "Cleaning previous builds",
                        command = ["./cleanup.sh", buildbot_url, WithProperties("%(slavename)s"), WithProperties("%(buildername)s"), "full"],
+                       workdir = ".",
                        haltOnFailure = True,
                        timeout = 2400))
 
@@ -284,6 +285,7 @@ for arch in arches:
                        name = "cleanup",
                        description = "Cleaning work area",
                        command = ["./cleanup.sh", buildbot_url, WithProperties("%(slavename)s"), WithProperties("%(buildername)s"), "single"],
+                       workdir = ".",
                        haltOnFailure = True,
                        timeout = 2400))
 
diff --git a/scripts/cleanup-phase1.sh b/scripts/cleanup-phase1.sh
deleted file mode 100755 (executable)
index 4260958..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/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
diff --git a/scripts/cleanup-phase2.sh b/scripts/cleanup-phase2.sh
deleted file mode 100755 (executable)
index 2af7b9f..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/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
diff --git a/scripts/cleanup.sh b/scripts/cleanup.sh
new file mode 100755 (executable)
index 0000000..dc47529
--- /dev/null
@@ -0,0 +1,99 @@
+#!/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