source: trunk/debathena/scripts/build-server/build-all/do-build @ 23582

Revision 23582, 3.0 KB checked in by broder, 15 years ago (diff)
When bootstrapping the debathenified packages of a new release, don't error out when the build is done, and create a stamp file to indicate that the build succeeded.
  • Property svn:executable set to *
Line 
1#!/bin/bash
2set -xe
3package=$1
4stamp=$2
5suite=$3
6psuite=$4
7: ${DEBATHENA_APT=/mit/debathena/apt}
8: ${DEBATHENA_BUILD_AREA=/afs/sipb.mit.edu/project/debathena/packages}
9. /mit/debathena/bin/debian-versions.sh
10tag=$(gettag $suite)
11[ -n "$1" ]
12[ -n "$2" ]
13trap 'echo "An error occured.  Press Enter to continue." >&2; echo -en "\a"; read ERROR; touch "$stamp.error"' EXIT
14touch "$stamp.started"
15dir=$(echo ${DEBATHENA_BUILD_AREA}/*/"${package#debathena-}")
16if [ ! -e $dir ]; then
17    dir=$(echo ${DEBATHENA_BUILD_AREA}/*/"${package}")
18fi
19[ -e "$dir" ]
20cd "$dir"
21debathenificator=$(echo ./debathenify-*)
22if [ "$debathenificator" != "./debathenify-*" ]; then
23    "$debathenificator" "${suite}-amd64" -A source binary upload
24    "$debathenificator" "${suite}-i386" source binary upload
25    touch "$stamp.done"
26    trap - EXIT
27    exit
28fi
29version=$(zcat ${DEBATHENA_APT}/dists/$psuite/*/source/Sources.gz | dpkg-awk -f - "Package:^$package\$" -- Version | sed -n 's/Version: // p')
30if [ -d "built/" ]; then
31    dsc="built/${package}_$version.dsc"
32fi
33if ! [ -e "$dsc" ]; then
34    if ! [ -e "${package}_$version.dsc" ]; then
35        schroot -c "${psuite}-amd64-sbuild" -- apt-get source "$package"
36    fi
37    if ! [ -e "${package}_${version}_source.changes" ]; then
38        (cd "${package}-${version/-*/}" && dpkg-genchanges -S -sa >"../${package}_${version}_source.changes")
39    fi
40    dsc="${package}_$version.dsc"
41fi
42[ -e "$dsc" ]
43
44if [ -e "${dsc%.dsc}_amd64.changes" ] || [ -e "${dsc%.dsc}_i386.changes" ]; then
45    changes="${dsc%.dsc}_amd64.changes"
46    buildlog="${dsc%.dsc}_amd64.build"
47    if [ ! -e $changes ]; then
48        changes="${dsc%.dsc}_i386.changes"
49        buildlog="${dsc%.dsc}_i386.build"
50    fi
51    grep -q 'dpkg-source.* -b equivs' $buildlog
52else
53    [ -e "${dsc%.dsc}_source.changes" ]
54    changes="${dsc%.dsc}_source.changes"
55    A=1
56    if (zcat ${DEBATHENA_APT}/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Source:^$package\$" -- Architecture; zcat ${DEBATHENA_APT}/dists/$psuite/*/binary-i386/Packages.gz | dpkg-awk -f - "Package:^$package\$" -- Architecture) | grep -Fxv 'Architecture: all' | grep -q .; then
57        A=0
58    fi
59    sbuildhack "${suite}-amd64" -A "$dsc"
60    [ $A -eq 1 ] || sbuildhack "${suite}-i386" "$dsc"
61    changes=$changes\ "$(basename "${dsc%.dsc}${tag}_amd64.changes")"
62    [ $A -eq 1 ] || changes=$changes\ "$(basename "${dsc%.dsc}${tag}_i386.changes")"
63fi
64
65#while
66#    echo "Type yes to upload: $changes"
67#    echo -en "\a"
68#    read UPLOAD
69#    [ "$UPLOAD" != "yes" ]; do
70#    :
71#done
72
73REPREPRO="reprepro -Vb ${DEBATHENA_APT}"
74
75(
76    flock -x 200
77    files=
78    for change in $changes; do
79        if [ "$change" = "${dsc%.dsc}_source.changes" ]; then
80            $REPREPRO --ignore=wrongdistribution include "$suite" "$change"
81        else
82            $REPREPRO --ignore=wrongdistribution include "$suite" "$change"
83            files=$files\ $change\ $(perl -0ne '$_ =~ /\nFiles: *\n(( [^\n]*\n)*)/; print $1;' "$change" | awk '{print $5}' | grep -v '\.orig\.tar\.gz$' || :)
84        fi
85    done
86    ! [ -d "built/" ] || mv -i $files "built/"
87) 200> /tmp/debathena-repository-lock
88
89touch "$stamp.done"
90trap - EXIT
Note: See TracBrowser for help on using the repository browser.