]> git.wh0rd.org - home.git/blob - .bin/cros-cbuildbot
always go into ~/ to avoid issues when we run from trybot dir
[home.git] / .bin / cros-cbuildbot
1 #!/bin/bash
2
3 cd ~/chromiumos || exit 1
4
5 # cache the sudo timestamp
6 sudo echo "" >/dev/null
7
8 d=/usr/local/google/home/vapier
9 if [[ ! -d ${d} ]] ; then
10 exit 1
11 fi
12
13 d+="/trybot"
14 if mount | grep -qs $d ; then
15 echo "mounts found in $d"
16 exit 1
17 fi
18 rd=$(readlink $d)
19 if mount | grep -qs $rd ; then
20 echo "mounts found in $rd"
21 exit 1
22 fi
23
24 if [[ $1 == "--noclean" ]] ; then
25 shift
26 else
27 echo "Cleaning ${d}"
28 pushd "${d}" >/dev/null
29 clean=(
30 built-sdk.tbz2
31 chroot
32 new-sdk-chroot
33 #sdks
34 src/build
35 test_results.tgz
36 trybot_archive
37 )
38 sudo rm -rf "${clean[@]}"
39 sudo find "${d}"/sdks -mtime +3 -delete
40 popd >/dev/null
41 fi
42
43 # find all the buildbot branches
44 echo "Looking up repo branches"
45 repos=$(r b | cut -b4- | awk '$1 == "bb" {
46 # Single repo output:
47 # bb | in src/third_party/portage-stable
48 # Multi repo output:
49 # bb | in:
50 # src/third_party/portage-stable
51 # src/third_party/chromiumos-overlay
52 if ($3 == "in")
53 print $NF
54 while (getline) {
55 if ($2 == "|")
56 break;
57 print $NF;
58 }
59 }')
60 if [[ -n ${repos} ]] ; then
61 echo "Auto pulling patches from 'bb' branch in repos:"
62 printf '\t%s\n' ${repos}
63
64 p_flag=""
65 for r in ${repos} ; do
66 r=$(r list | awk -v r="${r}" '$1 == r { print $NF }')
67 p_flag+="${r}:bb "
68 done
69
70 set -- -p "${p_flag}" "$@"
71 fi
72
73 vexec() { echo "$@"; exec "$@"; }
74 vexec cbuildbot --buildroot=${d} "$@"