auto-setup crontab
[strace-test.git] / strace-build-test
1 #!/bin/bash
2
3 POINT=HEAD
4 ARCH=$(dpkg-architecture -q DEB_BUILD_ARCH)
5 HOSTNAME=$(hostname)
6
7 while getopts ":p:a:" opt; do
8   case $opt in
9     p)
10       POINT=$OPTARG
11       ;;
12     a)
13       ARCH=$OPTARG
14       set +e
15       chk=`dpkg-architecture -a$ARCH > /dev/null 2>&1 ; echo $?`
16       set -e
17       if [ $chk != 0 ]; then
18           echo "Did not recognise ${ARCH} as a Debian architecture name. Exit."
19           exit 1
20       fi
21       ARCH=${ARCH}
22       ;;
23     \?)
24       echo "Invalid option: -$OPTARG" >&2
25       ;;
26   esac
27 done
28
29 PATH=/usr/local/sbin:/usr/local/bin:$PATH
30 export PATH
31
32 NUMCPUS=$(grep processor /proc/cpuinfo | wc -l)
33 if [ $NUMCPUS -gt 1 ]; then
34     PARALLEL="-j $NUMCPUS"
35 else
36     PARALLEL=""
37 fi
38
39 set -e
40 set -x
41
42 mysid=sid-93sam-strace
43
44 BASE_CHROOT="sid_$ARCH-dchroot"
45
46 schroot -e -c $mysid || true
47 schroot -b -c $BASE_CHROOT -n $mysid
48 dd-schroot-cmd -y -c $mysid apt-get update
49 dd-schroot-cmd -y -c $mysid apt-get build-dep strace
50 dd-schroot-cmd -y -c $mysid apt-get install git autotools-dev gawk dh-autoreconf
51
52 DATETIME=$(date -u '+%Y-%m-%d-%H%M%S')
53 BDIR=~/build/strace/build-test-${DATETIME}
54
55 mkdir -p ${BDIR}
56 cd ${BDIR}
57
58 cat > ~/build/strace/inside-schroot-test.sh << EOF
59 #!/bin/sh
60 cd ${BDIR}
61 git clone -q http://git.code.sf.net/p/strace/code strace.git
62 echo "BUILD ENVIRONMENT INFORMATION"
63 echo "============================="
64 echo "Debian architecture"
65 echo "-------------------"
66 dpkg-architecture -q DEB_BUILD_ARCH
67 echo "Hostname"
68 echo "--------"
69 hostname
70 echo "uname -rm"
71 echo "---------"
72 uname -rm
73 echo "Version of kernel headers (linux-libc-dev)"
74 echo "------------------------------------------"
75 dpkg -s linux-libc-dev
76 echo "Version of libc"
77 echo "---------------"
78 dpkg -s libc6-dev
79 echo "Version of gcc"
80 echo "--------------"
81 dpkg -s gcc
82 cd strace.git
83 git checkout $POINT
84 ./bootstrap
85 ./configure
86 make $PARALLEL && make check VERBOSE=1 && echo SUCCESS > ${BDIR}/RESULT
87 EOF
88
89 chmod +x ~/build/strace/inside-schroot-test.sh
90
91 cd ~
92
93 # Run the command, outout to typescript
94 script -c "schroot -r -c $mysid ~/build/strace/inside-schroot-test.sh"
95
96 if [ -f ${BDIR}/RESULT ] ; then
97     schroot -e -c $mysid
98     rm -rf ${BDIR}
99     rm -f ~/build/strace/inside-schroot-test.sh
100 else
101     echo "BUILD FAILED - not doing cleanup"
102     echo "Results in ${BDIR}"
103 fi
104 mv typescript typescript-$ARCH-$HOSTNAME-${DATETIME}.txt
105
106 gzip -9 typescript-$ARCH-$HOSTNAME-${DATETIME}.txt
107 FILE="typescript-$ARCH-$HOSTNAME-${DATETIME}.txt.gz"
108
109 (echo "START $FILE" ; \
110  base64 < $FILE ; \
111  echo "END $FILE") | \
112     mailx -s "strace-build-test $ARCH-$HOSTNAME-${DATETIME} log" \
113           steve-strace@einval.com
114
115 rm -f $FILE