blob: d400b1da3429da71c23fd420c9832aac6db59955 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
rootdir=$(pwd -P)
distclean () {
echo "Removing traces of previous builds from $rootdir"
local allpkgs=$(find $rootdir -maxdepth 3 -name APKBUILD -print | sed -e 's/\/APKBUILD//g' | sort)
for p in $allpkgs ; do
cd $p
pwd
abuild clean 2>&1
abuild cleanoldpkg 2>&1
abuild cleanpkg 2>&1
abuild cleancache 2>&1
done
}
build () {
local pkgs
local maintainer
local pkgno
local failed
pkgs=$($rootdir/aport.lua deplist $rootdir $1)
pktcnt=$(echo $pkgs | wc -w)
pkgno=0
failed=0
for p in $pkgs ; do
pkgno=$(expr "$pkgno" + 1)
echo "Building $p ($pkgno of $pktcnt in $1 - $failed failed)"
cd $rootdir/$1/$p
if [ -n "$debug" ] ; then
apk info | sort > $rootdir/packages.$1.$pkgno.$p.before
fi
abuild -rm > $rootdir/$1_$p.txt 2>&1
if [ "$?" = "0" ] ; then
if [ -z "$debug" ] ; then
rm $rootdir/$1_$p.txt
fi
else
echo "Package $1/$p failed to build (output in $rootdir/$1_$p.txt)"
if [ -n "$mail" ] ; then
maintainer=$(grep Maintainer APKBUILD | cut -d " " -f 3-)
if [ -n "$maintainer" ] ; then
recipients="'$maintainer' -cc dev@lists.alpinelinux.org"
else
recipients="dev@lists.alpinelinux.org"
fi
if [ -n "$mail" ] ; then
echo "sending mail to [$recipients]"
if [ $(wc -l $rootdir/$1_$p.txt | cut -f 1 -d ' ') -gt 200 ]; then
TMPFILE='mktemp' || exit 1
head -n 100 $rootdir/$1_$p.txt >> $TMPFILE
echo "-------" >> $TMPFILE
echo "snip..." >> $TMPFILE
echo "-------" >> $TMPFILE
tail -n 100 $rootdir/$1_$p.txt >> $TMPFILE
BUILDLOG="$TMPFILE"
else
BUILDLOG="$rootdir/$1_$p.txt"
fi
# echo "Package $1/$p failed to build. Build output is attached" | \
# email -s "NOT SPAM $p build report" -a $BUILDLOG \
# -n AlpineBuildBot -f buildbot@alpinelinux.org $recipients
if [ "$BUILDLOG" = "$TMPFILE" ]; then
# rm $BUILDLOG
mv $BUILDLOG $rootdir/$1_$p-short.txt
fi
fi
fi
failed=$(expr "$failed" + 1)
fi
if [ -n "$debug" ] ; then
apk info | sort > $rootdir/packages.$1.$pkgno.$p.after
fi
done
cd $rootdir
}
touch START_OF_BUILD.txt
unset clean
unset mail
while getopts "cmd" opt; do
case $opt in
'c') clean="--clean";;
'm') mail="--mail";;
'd') debug="--debug";;
esac
done
if [ -n "$clean" ] ; then
echo "Invoked with 'clean' option. This will take a while ..."
tmp=$(distclean)
echo "Done"
fi
echo "Refresh aports tree"
git pull
#cd main/build-base
#abuild -Ru
#cd $rootdir
for s in main testing unstable ; do
echo "Building packages in $s"
build $s
done
touch END_OF_BUILD.txt
echo "Done"
|