123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #!/usr/bin/env bash
- set -x
- readonly BOT_ROOT=/b
- readonly BOT_ROOT_NAME=$1
- readonly 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
- apt-get install sudo -y
- systemctl set-property buildslave.service TasksMax=100000
- 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@google.com>" > $BOT_DIR/info/admin
- echo "Connecting as $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]=\"$BOT_NAME\"
- #SLAVE_USER[1]=\"buildbot\"
- #SLAVE_BASEDIR[1]=\"$BOT_DIR\"
- #SLAVE_OPTIONS[1]=\"\"
- #SLAVE_PREFIXCMD[1]=\"\"" > $BOT_DIR/buildslave.cfg
- ls $BOT_DIR/
- cat $BOT_DIR/buildbot.tac
- }
- function try_start_builder {
- local N=$1
- local BOT_DIR="$BOT_ROOT/b$N"
- local BOT_NAME="$BOT_ROOT_NAME$N"
- systemctl daemon-reload
- service buildslave restart
- setup_numbered_bot "$BOT_NAME" "$BOT_DIR"
- systemctl daemon-reload
- service buildslave restart
- chown -R buildbot:buildbot $BOT_DIR/
- sudo -u buildbot /usr/bin/buildslave start $BOT_DIR/
- sleep 30
- cat $BOT_DIR/twistd.log
- if grep --quiet "slave is ready" $BOT_DIR/twistd.log; then
- return 0
- fi
- if grep --quiet "configuration update complete" $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 `shuf -i 1-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
|