Check beta component better
authorChristoph Berg <myon@debian.org>
Sun, 7 Aug 2016 10:05:34 +0000 (12:05 +0200)
committerChristoph Berg <myon@debian.org>
Sun, 7 Aug 2016 10:05:34 +0000 (12:05 +0200)
jenkins/builddebcheck-pgapt
jenkins/debcheck-pgapt

index 70de085aec23faeb46c87e76f20455e7ac8830c0..d30a17912e847aae7b7478a7f994c462a4f38938 100755 (executable)
@@ -77,6 +77,7 @@ case $stage in
        production)
                DIST="$distribution-pgdg"
                PKG="$PKG $DISTSDIR/$DIST/main/binary-${architecture}/Packages"
+               # -pgdg packages may use -pgdg -testing for building
                PKG="$PKG $DISTSDIR/$DIST-testing/main/binary-${architecture}/Packages"
                ;;
        testing)
@@ -86,13 +87,26 @@ case $stage in
        *) error "Bad stage $stage" ;;
 esac
 
-set -x
-
 # run builddebcheck
-dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
-       $PKG $MAINSRC || EXIT=1
-test -s "${BPO:-}" && { \
-dose-builddebcheck -v -f -e --deb-native-arch=$architecture \
-       $PKG $BPO $BPOSRC || EXIT=1 ; }
+BUILDDEBCHECK="dose-builddebcheck -v -f -e --deb-native-arch=$architecture"
+
+echo "### Running builddebcheck: main, packages not needing backports"
+( set -x; $BUILDDEBCHECK $PKG $MAINSRC ) || EXIT=1
+echo
+
+if test -s "${BPO:-}"; then
+  echo "### Running builddebcheck: main, packages needing backports"
+  grep '^Package:' $BPOSRC
+  ( set -x; $BUILDDEBCHECK $PKG $BPO $BPOSRC ) || EXIT=1
+  echo
+fi
+
+for component in $DISTSDIR/$DIST/?.?/source/Sources.gz; do
+  [ $(zcat $component | wc -c) = 0 ] && continue # skip empty file
+  echo "### Running builddebcheck: $component"
+  zcat $component | grep '^Package:'
+  ( set -x; $BUILDDEBCHECK $PKG $component ) || EXIT=1
+  echo
+done
 
 exit ${EXIT:-0}
index 37704a0517ca15d58e2509932f70addd0bb459e9..e497d3892b1f2b165d387b29ac47c9456265b98a 100755 (executable)
@@ -7,6 +7,9 @@
 # expected directories: chroots in /home/chroot
 # needs dose3 >= 4
 
+# when set, will check matching packages in main against this extra component
+BETA="9.6"
+
 set -eu
 
 error () {
@@ -14,6 +17,14 @@ error () {
   exit 2
 }
 
+fold () {
+  local r
+  for i in "$@"; do
+    r="${r:+$r,}$i"
+  done
+  echo "$r"
+}
+
 : ${distribution:=sid} ${architecture:=amd64} ${stage:=testing}
 
 LISTSDIR="/home/chroot/$distribution-$architecture/var/lib/apt/lists"
@@ -38,69 +49,74 @@ case $stage in
        *) error "Bad stage $stage" ;;
 esac
 
-trap 'rm -f ${MAINPKG:-} ${BPOPKG:-}' 0 2 3 15
-
 # include universe on ubuntu
 for FILE in $LISTSDIR/*_dists_${distribution}_universe_binary-${architecture}_Packages ; do
   [ -f "$FILE" ] || continue
   EXTRABG="--bg $FILE"
 done
 
-# include latest N.N components on sid
-case $distribution in
-       sid)
-               C=$(ls -d $DISTSDIR/$DIST/?.? | tail -n 1)
-               test -s $C/binary-${architecture}/Packages && \
-               EXTRAFG="--fg $C/binary-${architecture}/Packages"
-       ;;
-esac
-
-DEBCHECK="dose-debcheck -v -f -e ${EXTRABG:-} --bg $LISTSDIR/*_dists_${distribution}_main_binary-${architecture}_Packages"
-
-# packages not depending on backports
-MAINPKG=$(mktemp main_binary-${architecture}_Packages.XXXXXX)
-cat $DISTSDIR/$DIST/main/binary-${architecture}/Packages > $MAINPKG
+# list of all packages
+MAINPKG=$(awk '/^Package:/ { print $2 }' $DISTSDIR/$DIST/main/binary-${architecture}/Packages)
 
 # packages not tested in production
 if [ "$stage" = "production" ]; then
   for pkg in cl-pgloader; do
-    grep-dctrl --not -P $pkg $MAINPKG > $MAINPKG.tmp
-    mv $MAINPKG.tmp $MAINPKG
+    MAINPKG=$(echo "$MAINPKG" | grep -v "$pkg")
   done
 fi
 
+# run debcheck
+DEBCHECK="dose-debcheck -v -f -e ${EXTRABG:-} --bg $LISTSDIR/*_dists_${distribution}_main_binary-${architecture}_Packages"
+
+# bpo
 case $distribution in
   squeeze|wheezy|jessie)
-    for pkg in $(cat packages.backports); do
-      grep-dctrl --not -S $pkg $MAINPKG > $MAINPKG.tmp
-      mv $MAINPKG.tmp $MAINPKG
-    done
-
-    # packages depending on backports
-    BPOPKG=$(mktemp bpo_binary-${architecture}_Packages.XXXXXX)
-    for pkg in $(cat packages.backports); do
-      grep-dctrl -S $pkg $DISTSDIR/$DIST/main/binary-${architecture}/Packages >> $BPOPKG || :
-    done
-    ;;
+    echo "### Running debcheck: main, packages needing backports"
+    [ -f packages.backports ] || error "packages.backports not found"
+    pkg=$(fold $(cat packages.backports))
+    ( set -x; $DEBCHECK \
+      --bg $LISTSDIR/../backports/*_dists_${distribution}-backports_main_binary-${architecture}_Packages \
+      --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+      --checkonly $pkg ) || EXIT=$?
+    echo
+
+    # exclude packages from further testing
+    MAINPKG=$(echo "$MAINPKG" | fgrep -v -f packages.backports)
+  ;;
 esac
 
-set -x
+# beta
+if [ "${BETA:-}" ]; then
+  echo "### Running debcheck: main, packages matching '$BETA'"
+  pkg=$(fold $(echo "$MAINPKG" | fgrep "$BETA"))
+  ( set -x; $DEBCHECK \
+    --bg $DISTSDIR/$DIST/$BETA/binary-${architecture}/Packages \
+    --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+    --checkonly $pkg ) || EXIT=$?
+  echo
+
+  # exclude packages from further testing
+  MAINPKG=$(echo "$MAINPKG" | fgrep -v "$BETA")
+fi
 
-# run debcheck on main
-$DEBCHECK ${EXTRAFG:-} --fg $MAINPKG || EXIT=$?
-test -s "${BPOPKG:-}" && { \
-$DEBCHECK ${EXTRAFG:-} --bg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
-  --bg $LISTSDIR/../backports/*_dists_${distribution}-backports_main_binary-${architecture}_Packages \
-  --fg $BPOPKG || EXIT=$? ; }
+# main
+echo "### Running debcheck: main, remaining packages"
+pkg=$(fold $MAINPKG)
+( set -x; $DEBCHECK \
+  --fg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
+  --checkonly $pkg ) || EXIT=$?
+echo
 
-# run debcheck on N.N components
+# other components
 for P in $DISTSDIR/$DIST/?.?/binary-${architecture}/Packages; do
-       test -s $P && PKG="${PKG:-} $P"
+  test -s $P || continue
+  PKG="${PKG:-} $P"
 done
 if [ "${PKG:-}" ]; then
-  $DEBCHECK \
+  echo "### Running debcheck: other components"
+  ( set -x; $DEBCHECK \
     --bg $DISTSDIR/$DIST/main/binary-${architecture}/Packages \
-    --fg $PKG || EXIT=$?
+    --fg $PKG || EXIT=$?
 fi
 
 exit ${EXIT:-0}