summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2015-10-16 23:24:17 +0200
committerHolger Levsen <holger@layer-acht.org>2015-10-16 23:24:17 +0200
commit379420067139a2c8d71578e9d42b00d411f86336 (patch)
treea50e56cb34b4e930d31ef4950dd956fa25cd2e93
parentdf1d87363658c2483f61ecc1e583328d8459f15f (diff)
downloadjenkins.debian.net-379420067139a2c8d71578e9d42b00d411f86336.tar.xz
reproducible arch: build simple web page
-rw-r--r--TODO9
-rwxr-xr-xbin/reproducible_html_archlinux.sh53
-rw-r--r--job-cfg/reproducible.yaml6
3 files changed, 63 insertions, 5 deletions
diff --git a/TODO b/TODO
index 84a026ac..64a93094 100644
--- a/TODO
+++ b/TODO
@@ -294,18 +294,17 @@ properties:
* create a job, to bootstrap an arch schroot: done. needs to be made idempotent.
* use regular maintenace job to update the arch schroot: 'schroot --directory /tmp -c source:jenkins-reproducible-arch -u root -- pacman -Syu --noconfirm'
-* created another job (WIP), to build a single package and a webpage for it…
+* created another job (WIP), to build a single package
** introduce variations: USER, TZ, LANG, LC_ALL, umask
-* create a simple scheduler and build a few more packages…
-** schroot, find packages in /var/abs/core/, schedule those
-*** idea: reschedule reverse build depends too
+* create a working scheduler job
+** idea: reschedule reverse build depends too
* more random notes:
-** use -source schroot
** BOOTSTRAP_TAR_GZ=2015.08.01/archlinux-bootstrap-2015.08.01-x86_64.tar.gz needs to be replaced with a future proof filename
** download bootstrap.tar.gz sig and verify
** 'makepkg --skippgpcheck' should be replaced by 'makepkg' and 'echo "keyserver-options auto-key-retrieve" >> ~/.gnupg/gpg.conf'
*** this should make this obselete: 'schroot --directory /tmp -c source:jenkins-reproducible-arch -- grep ^validpgpkeys= $PKG/PKGBUILD|cut -d "'" -f2|xargs schroot --directory /tmp -c source:jenkins-reproducible-arch -- gpg --recv-keys'
** patch pacman to create .buildinfo files - or better: wait
+** rename arch scripts and jobs to archlinux
----
notes on source and binary versions:
diff --git a/bin/reproducible_html_archlinux.sh b/bin/reproducible_html_archlinux.sh
new file mode 100755
index 00000000..80f99ec2
--- /dev/null
+++ b/bin/reproducible_html_archlinux.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# Copyright 2014-2015 Holger Levsen <holger@layer-acht.org>
+# © 2015 Reiner Herrmann <reiner@reiner-h.de>
+# released under the GPLv=2
+
+DEBUG=false
+. /srv/jenkins/bin/common-functions.sh
+common_init "$@"
+
+# common code defining db access
+. /srv/jenkins/bin/reproducible_common.sh
+
+#
+# finally create the webpage
+#
+PAGE=archlinux/archlinux.html
+cat > $PAGE <<- EOF
+<!DOCTYPE html>
+<html lang="en-US">
+ <head>
+ <meta charset="UTF-8">
+ <title>Repoducible Archlinux ?</title>
+ </head>
+ <body>
+EOF
+cd $BASE/archlinux
+write_page "<table><tr><th>source package</th><th>test date</th><th>1st build log</th><th>2nd build log</th><th>diffoscope output for binary packages</th></tr>"
+for PKG in $(ls * -d1) ; do
+ write_page " <td>$PKG</td>"
+ write_page " <td>$(ls $PKG -dl|cut -d " " -f6-8)</td>"
+ for LOG in build1.log build2.log ; do
+ if [ -f $PKG/$LOG ] ; then
+ write_page " <td><a href=\"$LOG\">$LOG</a></td>"
+ else
+ write_page " <td>&nbsp;</td>"
+ fi
+ done
+ if [ -z "$(ls *.pkg.tar.xz.html 2>/dev/null)" ] ; then
+ write_page " <td>failed to build from source</td>"
+ else
+ write_page " <td>"
+ for ARTIFACT in *.pkg.tar.xz.html ; do
+ write_page " <a href=\"$ARTIFACT\">${ARTIFACT:0:-5}</a><br />"
+ done
+ write_page " </td>"
+ fi
+done
+
+write_page "</table>"
+write_page_footer Archlinux
+publish_page
+
diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml
index ad573aa1..99408529 100644
--- a/job-cfg/reproducible.yaml
+++ b/job-cfg/reproducible.yaml
@@ -1268,4 +1268,10 @@
my_shell: '/srv/jenkins/bin/reproducible_build_arch_pkg.sh'
my_recipients: 'qa-jenkins-scm@lists.alioth.debian.org'
my_node: ''
+ - '{name}_html_archlinux':
+ my_description: 'Build a simple webpage for Archlinux reproducibility tests'
+ my_timed: '42 H/2 * * *'
+ my_shell: '/srv/jenkins/bin/reproducible_html_archlinux.sh'
+ my_recipients: 'qa-jenkins-scm@lists.alioth.debian.org'
+ my_node: ''