[libcxx-commits] [libcxx] r359403 - Attempt to switch to auto-scaling bots
Eric Fiselier via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Apr 28 08:54:50 PDT 2019
Author: ericwf
Date: Sun Apr 28 08:54:50 2019
New Revision: 359403
URL: http://llvm.org/viewvc/llvm-project?rev=359403&view=rev
Log:
Attempt to switch to auto-scaling bots
Added:
libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh (with props)
Modified:
libcxx/trunk/utils/docker/debian9/Dockerfile
libcxx/trunk/utils/docker/scripts/run_buildbot.sh
Modified: libcxx/trunk/utils/docker/debian9/Dockerfile
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/docker/debian9/Dockerfile?rev=359403&r1=359402&r2=359403&view=diff
==============================================================================
--- libcxx/trunk/utils/docker/debian9/Dockerfile (original)
+++ libcxx/trunk/utils/docker/debian9/Dockerfile Sun Apr 28 08:54:50 2019
@@ -165,6 +165,8 @@ RUN ln -s /opt/gcc-5/bin/gcc /usr/local/
RUN apt-get update && \
apt-get install -y --no-install-recommends \
bash-completion \
+ vim \
+ systemd-sysv \
buildbot-slave \
&& rm -rf /var/lib/apt/lists/*
Modified: libcxx/trunk/utils/docker/scripts/run_buildbot.sh
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/docker/scripts/run_buildbot.sh?rev=359403&r1=359402&r2=359403&view=diff
==============================================================================
--- libcxx/trunk/utils/docker/scripts/run_buildbot.sh (original)
+++ libcxx/trunk/utils/docker/scripts/run_buildbot.sh Sun Apr 28 08:54:50 2019
@@ -1,6 +1,16 @@
#!/usr/bin/env bash
set -x
+script_dir=`dirname "$0"`
+
+# TODO(EricWF): Replace this file with the new script once the existing
+# bots have been migrated.
+if [ "$1" == "--new" ]; then
+ shift
+ $script_dir/run_buildbot_new.sh "$@"
+ shutdown now
+fi
+
BOT_DIR=/b
BOT_NAME=$1
BOT_PASS=$2
Added: libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh?rev=359403&view=auto
==============================================================================
--- libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh (added)
+++ libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh Sun Apr 28 08:54:50 2019
@@ -0,0 +1,105 @@
+#!/usr/bin/env bash
+set -x
+
+BOT_ROOT=/b
+BOT_ROOT_NAME=$1
+BOT_PASS=$2
+
+pushd /tmp
+curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
+bash install-monitoring-agent.sh
+curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
+bash install-logging-agent.sh --structured
+popd
+
+apt-get update -y
+apt-get upgrade -y
+
+# FIXME(EricWF): Remove this hack. It's only in place to temporarily fix linking libclang_rt from the
+# debian packages.
+# WARNING: If you're not a buildbot, DO NOT RUN!
+apt-get install lld-9
+rm /usr/bin/ld
+ln -s /usr/bin/lld-9 /usr/bin/ld
+
+systemctl set-property buildslave.service TasksMax=100000
+
+systemctl daemon-reload
+service buildslave restart
+
+function setup_numbered_bot {
+ local BOT_NAME=$1
+ local BOT_DIR=$2
+ mkdir -p $BOT_DIR
+
+ buildslave stop $BOT_DIR
+ chown buildbot:buildbot $BOT_DIR
+ rm -rf $BOT_DIR/*
+
+ buildslave create-slave --allow-shutdown=signal $BOT_DIR lab.llvm.org:9990 \
+ $BOT_NAME $BOT_PASS
+
+ echo "Eric Fiselier <ericwf at google.com>" > $BOT_DIR/info/admin
+
+ echo "Connecting as $BOT_BASE_NAME$1"
+ {
+ uname -a | head -n1
+ cmake --version | head -n1
+ g++ --version | head -n1
+ ld --version | head -n1
+ date
+ lscpu
+ } > $BOT_DIR/info/host
+
+
+ # echo "SLAVE_RUNNER=/usr/bin/buildslave
+ # SLAVE_ENABLED[1]=\"1\"
+ # SLAVE_NAME[1]=\"buildslave$1\"
+ # SLAVE_USER[1]=\"buildbot\"
+ # SLAVE_BASEDIR[1]=\"$BOT_DIR\"
+ # SLAVE_OPTIONS[1]=\"\"
+ # SLAVE_PREFIXCMD[1]=\"\"" > $BOT_DIR/buildslave.cfg
+
+}
+
+function try_start_builder {
+ local $N=$1
+ local BOT_DIR=$BOT_ROOT/b$N
+ local BOT_NAME=$BOT_ROOT_NAME$N
+ setup_numbered_bot $BOT_NAME $BOT_DIR
+ /usr/bin/buildslave start $BOT_DIR
+
+ sleep 30
+ cat /tmp/twistd.log
+ if grep --quiet "slave is ready" $BOT_DIR/twistd.log; then
+ return 0
+ fi
+ if grep "rejecting duplicate slave" $BOT_DIR/twistd.log; then
+ return 1
+ fi
+ echo "Unknown error"
+ cat $BOT_DIR/twistd.log
+ exit 1
+}
+
+
+for N in 1 2 3 4 5
+do
+ if try_start_builder $N; then
+ break
+ fi
+ echo "failed to start any buildbot"
+ shutdown now
+done
+
+# GCE can restart instance after 24h in the middle of the build.
+# Gracefully restart before that happen.
+sleep 72000
+while pkill -SIGHUP buildslave; do sleep 5; done;
+shutdown now
+
+echo "Failed to start any buildbot"
+shutdown now
+
+
+
Propchange: libcxx/trunk/utils/docker/scripts/run_buildbot_new.sh
------------------------------------------------------------------------------
svn:executable = *
More information about the libcxx-commits
mailing list