[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