Add Jenkins entry from rodrigc

This commit is contained in:
Benjamin Kaduk 2016-01-18 04:47:10 +00:00
parent 5b1301949d
commit 600ecca962
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48051

View file

@ -3337,4 +3337,157 @@
</task>
</help>
</project>
<project cat='proj'>
<title>Jenkins Continuous Integration for &os;</title>
<contact>
<person>
<name>
<given>Craig</given>
<common>Rodrigues</common>
</name>
<email>rodrigc@FreeBSD.org</email>
</person>
<person>
<name>Jenkins Administrators</name>
<email>jenkins-admin@FreeBSD.org</email>
</person>
<person>
<name>&os; Testing</name>
<email>FreeBSD-testing@freebsd.org</email>
</person>
</contact>
<links>
<url href="https://jenkins.FreeBSD.org">The Jenkins CI Server in the &os; Cluster</url>
<url href="https://github.com/Ultima1252/portest">Portest Script</url>
<url href="https://github.com/jenkinsci/workflow-plugin">Jenkins Workflow Plugin</url>
<url href="https://cloudbees.com">Cloudbees</url>
<url href="https://github.com/uber/phabricator-jenkins-plugin">Jenkins Phabricator Plugin</url>
<url href="https://github.com/uber/phabricator-jenkins-plugin/pull/110">Phabricator Plugin Fixes</url>
<url href="https://github.com/jenkinsci/durable-task-plugin/pull/14">Durable Task Plugin Fixes</url>
<url href="https://github.com/jenkinsci/clang-scanbuild-plugin/commits/master">Clang Scanbuild Plugin Fixes</url>
<url href="https://github.com/jenkinsci/multiple-scms-plugin/commits/master">Multiple SCMs Plugin Fixes</url>
<url href="https://github.com/jenkinsci/scm-sync-configuration-plugin/commits/master">SCM Sync Configuration Plugin Fixes</url>
<url href="https://lists.FreeBSD.org/pipermail/freebsd-testing/2016-January/001285.html">Porting Jobs to the Workflow Plugin</url>
<url href="https://github.com/kohsuke/akuma/pull/9">Akuma Fixes for &os;</url>
<url href="https://github.com/jmmv/kyua/pull/148">Kyua Fix for Invalid Characters</url>
</links>
<body>
<p>The Jenkins Continuous Integration and Testing project
has been helping to improve the quality of &os;. Since the last
status report, we have quickly found commits that caused build
breakage or test failures. &os; developers saw these problems and
quickly fixed them. Some of the highlights include:</p>
<ul>
<li>Ricky Gallagher wrote a script named
<tt>portest</tt>, which can take a patch to the &os; ports
tree as input, and can generate a sequence of commands to
check out the ports tree from Subversion, apply the patch, and
then invoke <tt>poudriere</tt> to build the affected part of
the ports tree. Ricky consulted with Torsten Z&uuml;hlsdorff
on this. This script will be used later to test changes to
the ports tree.</li>
<li>
<p>&a.rodrigc; converted some Jenkins builds to use
the Workflow plugin. Workflow is a plugin written by Jesse
Glick and other developers at Cloudbees, the main company
providing commercial support for Jenkins. With this plugin, a
Jenkins job can be written in a Domain Specific Language (DSL)
which is written in the Groovy scripting language. Workflow
scripts are meant to provide sophisticated access to Jenkins
functionality, in a simple scripting language. As Jenkins
jobs get more complicated and have more interdependencies,
using a DSL is easier for maintainability instead of creating
Jenkins jobs via menus.</p>
<p>&a.rodrigc; worked with Jesse Glick to identify
and fix a problem with the Durable Task plugin used by the
workflow plugin. This problem seemed to show up mostly on
non-Linux platforms such as OS X and &os;.</p>
</li>
<li>
<p>&a.eadler; worked with &a.rodrigc; to test a
Jenkins plugin written by Aiden Scandella at Uber which
integrates Phabricator and Jenkins. With this plugin, if
someone submits a code review with Phabricator's Differential
tool, a Jenkins build with this code change will be triggered.
The Phabricator code review would then be updated with the
result of the build.</p>
<p>&a.eadler; and &a.rodrigc; had some initial
success testing this plugin using the &os; docs
repository, but this plugin still has a lot of hardcoded
dependencies specific to Uber's environment which make it
difficult to use out-of-the-box for &os;. Alexander Yerenkow
submitted some patches upstream to fix some of these problems,
but this plugin still needs more work. &a.rodrigc; thinks
that it might be better to write a workflow script to call
Phabricator commands directly.</p>
</li>
<li>
<p>&a.rodrigc; pushed fixes upstream to several
plugins including:</p>
<ul>
<li>SCM Sync configuration plugin</li>
<li>NodeLabel parameter plugin</li>
<li>Subversion plugin</li>
<li>Multiple SCMs plugin</li>
<li>Clang Scanbuild plugin</li>
</ul>
<p>&a.rodrigc; was granted commit access to the SCM
Sync configuration plugin, Multiple SCMs plugin, and Clang
Scanbuild plugin.</p>
</li>
<li>&a.lwhsu; set up multiple builds using jails on
machines located at NYI and administered by the &os; Cluster
Administrators. One of these builds targets 64-bit ARM.</li>
<li>Michael Zhilin fixed the Akuma library for &os;.
The Akuma library is used by Jenkins to determine what
command-line arguments were passed to a running process. To
fix this, Michael invoked an &os;-specific sysctl() with
KERN_PROC_ARGS to determine the arguments for a running pid.
This fix allows a running Jenkins instance to restart itself
after new plugins are installed.</li>
<li>&a.jmmv; accepted a fix for Kyua from &a.rodrigc;
to fix writing out XML characters to test report files.</li>
</ul>
</body>
<help>
<task>
<p>Work more on using the workflow plugin for various builds.</p>
</task>
<task>
<p>Set up a build to test <tt>bmake</tt>'s meta-mode.</p>
</task>
<task>
<p>Finish off integration with Phabricator.</p>
</task>
<task>
<p>People interested in helping out should join the
FreeBSD-testing@freebsd.org list.</p>
</task>
</help>
</project>
</report>