[Qa-jenkins-scm] [Git][qa/jenkins.debian.net][master] 4 commits: reproducible Archlinux: run job to update Archlinux webpages every 30m
Holger Levsen
gitlab at salsa.debian.org
Thu Sep 27 12:02:57 BST 2018
Holger Levsen pushed to branch master at Debian QA / jenkins.debian.net
Commits:
0bc16c61 by Holger Levsen at 2018-09-27T00:44:39Z
reproducible Archlinux: run job to update Archlinux webpages every 30m
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
b62d74f4 by Holger Levsen at 2018-09-27T01:19:45Z
reproducible Archlinux: create pages of packages in repository X in state Y
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
ae73e1db by Holger Levsen at 2018-09-27T10:53:43Z
reproducible Archlinux: refactoring
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
6683411a by Holger Levsen at 2018-09-27T11:02:43Z
reproducible Archlinux: add more links from repository/state overview table
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
2 changed files:
- bin/reproducible_html_archlinux.sh
- job-cfg/reproducible.yaml
Changes:
=====================================
bin/reproducible_html_archlinux.sh
=====================================
@@ -36,6 +36,20 @@ WIDTH=1920
HEIGHT=960
PAGE=""
TITLE=""
+STATE=""
+
+get_state_from_counter() {
+ local counter=$1
+ case $counter in
+ 0) STATE=GOOD ;;
+ 1) STATE=FTBR ;;
+ 2) STATE=FTBFS ;;
+ 3) STATE=DEPWAIT ;;
+ 4) STATE=404 ;;
+ 5) STATE=BLACKLISTED ;;
+ 6) STATE=UNKNOWN ;;
+ esac
+}
repostats(){
#
@@ -67,13 +81,16 @@ repostats(){
NR_TESTED=$TESTED
fi
echo " <tr>" >> $HTML_REPOSTATS
- echo " <td><a href='/archlinux/$REPOSITORY.html'>$REPOSITORY</a></td><td>$NR_TESTED</td>" >> $HTML_REPOSTATS
+ echo " <td><a href='/archlinux/$REPOSITORY.html'>$REPOSITORY</a></td><td><a href='/archlinux/$REPOSITORY.html'>$NR_TESTED</a></td>" >> $HTML_REPOSTATS
+ counter=0
for i in $NR_GOOD $NR_FTBR $NR_FTBFS $NR_DEPWAIT $NR_404 $NR_BLACKLISTED $NR_UNKNOWN ; do
+ get_state_from_counter $counter
+ let counter+=1
PERCENT_i=$(echo "scale=1 ; ($i*100/$TESTED)" | bc)
if [ "$PERCENT_i" != "0" ] || [ "$i" != "0" ] ; then
- echo " <td>$i ($PERCENT_i%)</td>" >> $HTML_REPOSTATS
+ echo " <td><a href='/archlinux/state_${REPOSITORY}_$STATE.html'>$i ($PERCENT_i%)</a></td>" >> $HTML_REPOSTATS
else
- echo " <td>$i</td>" >> $HTML_REPOSTATS
+ echo " <td><a href='/archlinux/state_${REPOSITORY}_$STATE.html'>$i</a></td>" >> $HTML_REPOSTATS
fi
done
echo " </tr>" >> $HTML_REPOSTATS
@@ -115,12 +132,15 @@ repostats(){
fi
echo " <tr>" >> $HTML_REPOSTATS
echo " <td><b>all combined</b></td><td>$NR_TESTED</td>" >> $HTML_REPOSTATS
+ counter=0
for i in $ARCHLINUX_NR_GOOD $ARCHLINUX_NR_FTBR $ARCHLINUX_NR_FTBFS $ARCHLINUX_NR_DEPWAIT $ARCHLINUX_NR_404 $ARCHLINUX_NR_BLACKLISTED $ARCHLINUX_NR_UNKNOWN ; do
+ get_state_from_counter $counter
+ let counter+=1
PERCENT_i=$(echo "scale=1 ; ($i*100/$ARCHLINUX_TESTED)" | bc)
if [ "$PERCENT_i" != "0" ] || [ "$i" != "0" ] ; then
- echo " <td>$i ($PERCENT_i%)</td>" >> $HTML_REPOSTATS
+ echo " <td><a href='/archlinux/state_$STATE.html'>$i ($PERCENT_i%)</a></td>" >> $HTML_REPOSTATS
else
- echo " <td>$i</td>" >> $HTML_REPOSTATS
+ echo " <td><a href='/archlinux/state_$STATE.html'>$i</a></td>" >> $HTML_REPOSTATS
fi
done
echo " </tr>" >> $HTML_REPOSTATS
@@ -232,6 +252,7 @@ state_pages(){
archlinux_page_repostats
TESTED=$(query_db "SELECT count(*) FROM sources AS s JOIN results AS r ON s.id=r.package_id WHERE s.architecture='x86_64' AND r.status LIKE '$STATE%';")
if [ "$STATE" = "UNKNOWN" ] ; then
+ # untested packages are also state UNKNOWN...
UNTESTED=$(query_db "SELECT count(s.name) FROM sources AS s WHERE s.architecture='x86_64' AND s.id NOT IN (SELECT package_id FROM results)")
if [ $UNTESTED -ne 0 ] ; then
let TESTED=$TESTED+$UNTESTED
@@ -246,6 +267,7 @@ state_pages(){
cat $ARCHBASE/$REPOSITORY/$PKG/pkg.html >> $PAGE 2>/dev/null || true
done
if [ "$STATE" = "UNKNOWN" ] ; then
+ # untested packages are also state UNKNOWN...
STATE_PKGS=$(query_db "SELECT s.name FROM sources AS s WHERE s.architecture='x86_64' AND s.suite='$SUITE' AND s.id NOT IN (SELECT package_id FROM results) ORDER BY s.name")
for PKG in ${STATE_PKGS} ; do
cat $ARCHBASE/$REPOSITORY/$PKG/pkg.html >> $PAGE 2>/dev/null || true
@@ -257,10 +279,47 @@ state_pages(){
done
}
+repository_state_pages(){
+ for REPOSITORY in $ARCHLINUX_REPOS ; do
+ SUITE="archlinux_$REPOSITORY"
+ for STATE in FTBFS FTBR DEPWAIT 404 GOOD BLACKLISTED UNKNOWN ; do
+ PAGE=state_${REPOSITORY}_$STATE.html
+ TITLE="Reproducible archlinux, packages in $REPOSITORY in state $STATE"
+ echo "$(date -u) - starting to write page for packages in $REPOSITORY in state $STATE'."
+ archlinux_page_header
+ archlinux_page_repostats
+ TESTED=$(query_db "SELECT count(*) FROM sources AS s JOIN results AS r ON s.id=r.package_id WHERE s.architecture='x86_64' AND s.suite='$SUITE' AND r.status LIKE '$STATE%';")
+ if [ "$STATE" = "UNKNOWN" ] ; then
+ # untested packages are also state UNKNOWN...
+ UNTESTED=$(query_db "SELECT count(s.name) FROM sources AS s WHERE s.architecture='x86_64' AND s.suite='$SUITE' AND s.id NOT IN (SELECT package_id FROM results)")
+ if [ $UNTESTED -ne 0 ] ; then
+ let TESTED=$TESTED+$UNTESTED
+ fi
+ fi
+ write_page "<h2>$TESTED packages in $REPOSITORY in $STATE state</h2>"
+ write_page " <table><tr><th>repository</th><th>source package</th><th>version</th><th>test result</th><th>test date<br />test duration</th><th>1st build log<br />2nd build log</th></tr>"
+ STATE_PKGS=$(query_db "SELECT s.name FROM sources AS s JOIN results AS r ON s.id=r.package_id WHERE s.architecture='x86_64' AND s.suite='$SUITE' AND r.status LIKE '$STATE%' ORDER BY r.status,s.name")
+ for PKG in ${STATE_PKGS} ; do
+ cat $ARCHBASE/$REPOSITORY/$PKG/pkg.html >> $PAGE 2>/dev/null || true
+ done
+ if [ "$STATE" = "UNKNOWN" ] ; then
+ # untested packages are also state UNKNOWN...
+ STATE_PKGS=$(query_db "SELECT s.name FROM sources AS s WHERE s.architecture='x86_64' AND s.suite='$SUITE' AND s.id NOT IN (SELECT package_id FROM results) ORDER BY s.name")
+ for PKG in ${STATE_PKGS} ; do
+ cat $ARCHBASE/$REPOSITORY/$PKG/pkg.html >> $PAGE 2>/dev/null || true
+ done
+ fi
+ write_page " </table>"
+ archlinux_page_footer
+ done
+ done
+}
+
repostats
single_main_page
repository_pages
state_pages
+repository_state_pages
rm $HTML_REPOSTATS > /dev/null
echo "$(date -u) - all done."
=====================================
job-cfg/reproducible.yaml
=====================================
@@ -531,10 +531,10 @@
my_timed: '1 H/2 * * *'
my_shellext: ".py"
- 'html_archlinux':
- my_description: 'Build a simple webpage for Arch Linux reproducibility tests'
- my_timed: '1 H/2 * * *'
+ my_description: 'Build webpages for Arch Linux reproducibility tests'
+ my_timed: '15,45 * * * *'
- 'archlinux_scheduler':
- my_description: 'A simple scheduler for for Arch Linux reproducibility tests'
+ my_description: 'Scheduler for for Arch Linux reproducibility tests'
my_timed: '0 H/3 * * *'
- 'html_fedora-23_x86_64':
my_description: 'Build a simple webpage for Fedora 23 reproducibility tests'
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/compare/9f4a0ec08600a0c273baa88ca768ab78514444ab...6683411ab2b005236b6ceeef1b952c8269edfa93
--
View it on GitLab: https://salsa.debian.org/qa/jenkins.debian.net/compare/9f4a0ec08600a0c273baa88ca768ab78514444ab...6683411ab2b005236b6ceeef1b952c8269edfa93
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/qa-jenkins-scm/attachments/20180927/5397c27d/attachment-0001.html>
More information about the Qa-jenkins-scm
mailing list