1
0
mirror of https://github.com/golang/go synced 2024-11-22 18:24:48 -07:00
go/misc/dashboard/buildcron.sh

59 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/sh
# Copyright 2010 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
# This script can be run to create a new builder and then
# to keep it running via cron. First, run it by hand until it
# starts up without errors and can run the loop. Then, once
# you're confident that it works, add this to your crontab:
#
# */5 * * * * cd $HOME; path/to/buildcron.sh darwin 386 >/dev/null 2>/dev/null
if [ $# != 2 ]; then
echo 'usage: buildcron.sh goos goarch' 1>&2
exit 2
fi
export GOOS=$1
export GOARCH=$2
# Check if we are already running.
# First command must not be pipeline, to avoid seeing extra processes in ps.
all=$(ps axwwu)
pid=$(echo "$all" | grep "buildcron.sh $1 $2" | grep -v "sh -c" | grep -v $$ | awk '{print $2}')
if [ "$pid" != "" ]; then
#echo already running buildcron.sh $1 $2
#echo "$all" | grep "buildcron.sh $1 $2" | grep -v "sh -c" | grep -v $$
exit 0
fi
export BUILDHOST=godashboard.appspot.com
export BUILDER=${GOOS}-${GOARCH}
export GOROOT=$HOME/go-$BUILDER/go
export GOBIN=$HOME/go-$BUILDER/bin
if [ ! -f ~/.gobuildkey-$BUILDER ]; then
echo "need gobuildkey for $BUILDER in ~/.gobuildkey-$BUILDER" 1>&2
exit 2
fi
if [ ! -d $GOROOT ]; then
mkdir -p $GOROOT
hg clone https://go.googlecode.com/hg/ $GOROOT
else
cd $GOROOT
hg pull -u || exit 1
fi
mkdir -p $GOROOT/bin
cd $GOROOT/..
cp go/misc/dashboard/builder.sh go/misc/dashboard/buildcontrol.py .
chmod a+x builder.sh buildcontrol.py
cd go
../buildcontrol.py next $BUILDER
cd ..
./builder.sh