diff options
author | Holger Levsen <holger@layer-acht.org> | 2014-10-10 12:58:44 +0200 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2014-10-10 12:58:44 +0200 |
commit | 00ae28f2e8c659ba2848c1a12683bed483f31c08 (patch) | |
tree | 3ddea84e5899caa2a7a59d36f8f600b136cf1c4d | |
parent | b384d6e450a789958000bcacd382cb895221faaa (diff) | |
download | jenkins.debian.net-00ae28f2e8c659ba2848c1a12683bed483f31c08.tar.xz |
reproducible: polishing various little things
-rw-r--r-- | INSTALL | 2 | ||||
-rw-r--r-- | README | 2 | ||||
-rw-r--r-- | TODO | 16 | ||||
-rwxr-xr-x | bin/reproducible_build.sh | 2 | ||||
-rwxr-xr-x | bin/reproducible_setup.sh | 2 | ||||
-rwxr-xr-x | bin/reproducible_stats.sh | 12 | ||||
-rw-r--r-- | job-cfg/reproducible.yaml | 13 |
7 files changed, 33 insertions, 16 deletions
@@ -3,7 +3,7 @@ Setup of jenkins.debian.net :Author: Holger Levsen :Authorinitials: holger :EMail: holger@layer-acht.org -:Status: in progress +:Status: working, in progress :lang: en :Doctype: article :Licence: GPLv2 @@ -3,7 +3,7 @@ About jenkins.debian.net :Author: Holger Levsen :Authorinitials: holger :EMail: holger@layer-acht.org -:Status: in progress +:Status: working, in progress :lang: en :Doctype: article :Licence: GPLv2 @@ -3,7 +3,7 @@ ToDo for jenkins.debian.net :Author: Holger Levsen :Authorinitials: holger :EMail: holger@layer-acht.org -:Status: in progress +:Status: working, in progress :lang: en :Doctype: article :Licence: GPLv2 @@ -110,11 +110,23 @@ See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian *** killer job is run before setup *** scheduler and builder jobs are started after +* bugs +** fix check for Architecture, see FIXME in _builds.sh +*** once done, schedule hurd-libfuse +** when notes are removed the navigation pages are not updated... (touch note_new on create, then on next run delete on all navi pages for which note_new exists) + +* CSS/HTML +** use iframes +** use font class=small statt size=+1 +** use icons within index pages (refactor to get rid of that case statement, use array instead) +** use css class to mark packages with notes, underline them. explain HAS_NOTE on every page which has them... + * watch: zephyr (debbindiff timeout?) * watch: haskell-hsql-odbc (debbindiff error only in jenkins log, not in rbuild log * watch: cxxtest: dbd failure should be in rbuild output! * watch: android: no debbindiff output? -* watch/fix: swig/subversion +* watch: swig/subversion (FTBFS, report note at least...) +* watch: hurd-libfuse: should be not for us * generate .json for tracker.d.o * reschedule all pkg tested before oct 06 00:00 UTC (we want to know if they generate .buildinfo files) * reschedule all files with 0 length .rbuild.log files diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh index abb142a0..c999fe00 100755 --- a/bin/reproducible_build.sh +++ b/bin/reproducible_build.sh @@ -158,6 +158,8 @@ for SRCPACKAGE in ${PACKAGES} ; do RBUILDLOG=/var/lib/jenkins/userContent/rbuild/${SRCPACKAGE}_${EVERSION}.rbuild.log mv ${TMPLOG} ${RBUILDLOG} # check whether the package is not for us... + # FIXME: needs to check for all packages, not just the first one + # FIXME: linux-any is valid too (but hurd-any not) ARCH=$(grep "^Architecture: " ${SRCPACKAGE}_*.dsc| sort -r | head -1 | cut -d " " -f2-) if [[ ! "$ARCH" =~ "amd64" ]] && [[ ! "$ARCH" =~ "all" ]] && [[ ! "$ARCH" =~ "any" ]] && [[ ! "$ARCH" =~ "linux-amd64" ]]; then sqlite3 -init $INIT ${PACKAGES_DB} "REPLACE INTO source_packages VALUES (\"${SRCPACKAGE}\", \"${VERSION}\", \"not for us\", \"$DATE\")" diff --git a/bin/reproducible_setup.sh b/bin/reproducible_setup.sh index 1ee7cbee..35d35989 100755 --- a/bin/reproducible_setup.sh +++ b/bin/reproducible_setup.sh @@ -35,7 +35,7 @@ EOF # blacklist some packages for PKG in linux cups zurl openclipart ; do - RESULT=$(sqlite3 -init $INIT $PACKAGES_DB " SELECT name FROM source_packages WHERE status = 'blacklisted' AND name = '$PGK'") + RESULT=$(sqlite3 -init $INIT $PACKAGES_DB " SELECT name FROM source_packages WHERE status = 'blacklisted' AND name = '$PKG'") if [ "$RESULT" = "" ] ; then sqlite3 -init $INIT $PACKAGES_DB "REPLACE into source_packages VALUES ('$PKG','0','blacklisted',date('now'))" fi diff --git a/bin/reproducible_stats.sh b/bin/reproducible_stats.sh index fbdf85a3..5e2d7336 100755 --- a/bin/reproducible_stats.sh +++ b/bin/reproducible_stats.sh @@ -71,6 +71,8 @@ SPOKENTARGET["FTBFS"]="packages which failed to build from source" SPOKENTARGET["404"]="packages where the sources failed to downloaded" SPOKENTARGET["not_for_us"]="packages which should not be build on 'amd64'" SPOKENTARGET["blacklisted"]="packages which have been blacklisted" +# shop trailing slash +JENKINS_URL=${JENKINS_URL:0:-1} # # gather notes @@ -276,7 +278,7 @@ EOF set_icon() { # icons taken from tango-icon-theme (0.8.90-5) # licenced under http://creativecommons.org/licenses/publicdomain/ - STATE_TARGET_NAME=$1 + STATE_TARGET_NAME="$1" case "$1" in reproducible) ICON=weather-clear.png ;; @@ -292,7 +294,7 @@ set_icon() { ;; 404) ICON=weather-severe-alert.png ;; - not_for_us) ICON=weather-few-clouds-night.png + not*) ICON=weather-few-clouds-night.png ;; blacklisted) ICON=error.png ;; @@ -399,7 +401,7 @@ write_summary_header() { if [ "$1" = "$MAINVIEW" ] ; then write_summary "<p>These pages are updated every six hours. Results are obtained from <a href=\"$JENKINS_URL/view/reproducible\">several build jobs running on jenkins.debian.net</a>. Thanks to <a href=\"https://www.profitbricks.com\">Profitbricks</a> for donating the virtual machine it's running on!</p>" fi - write_summary "<p>$COUNT_TOTAL packages attempted to build so far, that's $PERCENT_TOTAL% of $AMOUNT source packages in Debian $SUITE currently. Out of these, $PERCENT_GOOD% were successful, so quite wildly guessing this roughy means about $GUESS_GOOD <a href=\"https://wiki.debian.org/ReproducibleBuilds\">packages should be reproducibly buildable!</a>" + write_summary "<p>$COUNT_TOTAL packages have been attempted to be build so far, that's $PERCENT_TOTAL% of $AMOUNT source packages in Debian $SUITE currently. Out of these, $PERCENT_GOOD% were successful, so quite wildly guessing this roughy means about $GUESS_GOOD <a href=\"https://wiki.debian.org/ReproducibleBuilds\">packages should be reproducibly buildable!</a>" if [ "${1:0:3}" = "all" ] || [ "$1" = "dd-list" ] ; then write_summary " Join <code>#debian-reproducible</code> on OFTC to get support for making sure your packages build reproducibly too!" fi @@ -426,7 +428,7 @@ write_summary_header() { } write_summary_footer() { - write_summary "<hr/><p><font size='-1'><a href=\"$JENKINS_URL/userContent/reproducible.html\">Static URL for this page.</a> Last modified: $(date). Copyright 2014 <a href=\"mailto:holger@layer-acht.org\">Holger Levsen</a>, GPL-2 licensed. <a href=\"https://jenkins.debian.net/userContent/about.html\">About jenkins.debian.net</a>. Weather icons are taken from the <a href="http://tango.freedesktop.org/Tango_Icon_Library" target="_blank">Tango Icon Library</a>.</font>" + write_summary "<hr/><p><font size='-1'><a href=\"$JENKINS_URL/userContent/about.html\">About jenkins.debian.net</a>, about <a href=\"https://wiki.debian.org/ReproducibleBuilds\"> reproducible builds of Debian</a> and <a href=\"$JENKINS_URL/userContent/reproducible.html\">overview of reproducible build results on jenkins.d.n</a>. Last update: $(date). Copyright 2014 <a href=\"mailto:holger@layer-acht.org\">Holger Levsen</a>, GPL-2 licensed. The weather icons are public domain and have been taken from the <a href="http://tango.freedesktop.org/Tango_Icon_Library" target="_blank">Tango Icon Library</a>.</font>" write_summary "</p></body></html>" } @@ -579,4 +581,4 @@ for STATE in $ALLSTATES ; do publish_summary done -echo "Enjoy https://jenkins.debian.net/userContent/reproducible.html" +echo "Enjoy $JENKINS_URL/userContent/reproducible.html" diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml index a2e45ca6..3afca360 100644 --- a/job-cfg/reproducible.yaml +++ b/job-cfg/reproducible.yaml @@ -16,7 +16,7 @@ url: http://www.profitbricks.com text: Sponsored by Profitbricks icon: /userContent/images/profitbricks-24x24.png - description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds statistics</a> page.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds overview</a> pages.' logrotate: daysToKeep: 365 numToKeep: 20 @@ -56,7 +56,7 @@ option: category categories: - reproducible - description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds statistics</a> page.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds overview</a> pages.' logrotate: daysToKeep: 365 numToKeep: 20 @@ -91,7 +91,7 @@ url: http://www.profitbricks.com text: Sponsored by Profitbricks icon: /userContent/images/profitbricks-24x24.png - description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds statistics</a> page.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at the <a href="https://jenkins.debian.net/userContent/reproducible.html">reproducible builds overview</a> pages.' logrotate: daysToKeep: 365 numToKeep: 20 @@ -103,7 +103,7 @@ - email: recipients: 'jenkins+debian-reproducible holger@layer-acht.org' - htmlpublisher: - name: 'Reproducible builds statistics' + name: 'Reproducible build overview' directory: '.' indexfiles: 'reproducible.html' keepall: True @@ -143,7 +143,7 @@ my_timed: '42 0 * * *' my_shell: '/srv/jenkins/bin/reproducible_setup.sh' - '{name}_stats': - my_description: 'Reproducible builds statistics' + my_description: 'Generates HTML results for reproducible builds.' my_timed: '0 0,6,12,18 * * *' my_shell: '/srv/jenkins/bin/reproducible_stats.sh' - '{name}_build_random_packages': @@ -163,6 +163,7 @@ my_params: 'candidates 20' - '{name}_scheduler': my_description: 'Schedule packages to be tested on reproducible building.' - my_timed: '23 * * * *' +# my_timed: '23 * * * *' + my_timed: '' my_shell: '/srv/jenkins/bin/reproducible_scheduler.sh' |