- Add 2014Q1 status report for Jenkins

Submitted by:	rodrigc
This commit is contained in:
Gabor Pali 2014-04-07 08:56:07 +00:00
parent 771d94b499
commit 8ae67f730e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44461

View file

@ -18,7 +18,7 @@
<!-- XXX: Keep the number of entries updated -->
<p>Thanks to all the reporters for the excellent work! This report
contains 19 entries and we hope you enjoy reading it.</p>
contains 20 entries and we hope you enjoy reading it.</p>
<p>The deadline for submissions covering between April and
June 2014 is July 7th, 2014.</p>
@ -30,6 +30,12 @@
<description>&os; Team Reports</description>
</category>
<category>
<name>proj</name>
<description>Projects</description>
</category>
<category>
<name>kern</name>
@ -1092,4 +1098,154 @@
<task>Write SD, SATA drivers.</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">Jenkins CI server in &os; cluster</url>
<url href="https://wiki.freebsd.org/Jenkins#Jenkins_for_FreeBSD_status">Jenkins on &os; project status</url>
<url href="https://wiki.freebsd.org/Jenkins#Presentations_and_Working_Groups">Video and slides of March 13, 2014 presentation at Bay Area &os; User Group (BAFUG)</url>
<url href="http://empt1e.blogspot.ru/2014/03/using-jenkins-libvirt-slave-plugin-with.html">Jenkins, libvirt, and bhyve</url>
<url href="http://jenkins-ci.org">Jenkins Continuous Integration</url>
<url href="http://www.ansible.com">Ansible</url>
</links>
<body>
<p>Jenkins is a framework that is used by many companies and open
source projects for Continuous Integration (CI). CI allows
developers to commit code to a Source Code Management (SCM)
system such as Subversion, and then have automated programs
check out, build, and test the code. Jenkins is implemented in
the Java language.</p>
<p>&a.emaste; reviewed some CI work that &a.rodrigc; had done for
the FreeNAS project with Jenkins, and encouraged him to set up
something similar for the &os; Project. With the help of the
&os; Cluster Administration Team, He set up a &os; machine
running two bhyve virtual machines,
<tt>jenkins-9.FreeBSD.org</tt> and
<tt>jenkins-10.FreeBSD.org</tt>. He set up software builds of
<tt>head</tt> and several <tt>stable</tt> branches on these
machines. The status of these builds is visible via a web
interface which is accessible via <tt>jenkins.FreeBSD.org</tt>.
When any of these builds fail, emails are sent to
<tt>freebsd-current</tt> or <tt>freebsd-stable</tt>. Emails are
also sent directly to the list of people who recently committed
code to Subversion since the last successful build.</p>
<p>As part of the Jenkins setup, &a.rodrigc; encountered problems
with running Java &os;&nbsp;9.2 and &os;&nbsp;10.0. Both problems
stemmed from changes to the &os; Virtual Memory (VM) subsystem.
On &os; 9.2-RELEASE, running Jenkins under Java would cause the
kernel to panic. This was a known problem, and fixed in
9.2.-RELEASE-p3. On &os; 10.0-RELEASE, Java processes would
randomly crash. Disabling the <tt>vm.pmap.pcid_enabled</tt>
<tt>sysctl(3)</tt> variable seemed to fix the problem. In
<tt>kern/187238</tt>, Henrik Gulbrandsen submitted fixes to the
&os; VM to address this problem. &a.kib; committed these fixes
to <tt>head</tt>. These fixes are being tested now.</p>
<p>During the setup of the bhyve VM's which run Jenkins processes,
&a.rodrigc; wrote scripts to start bhyve VM's from the
<tt>rc.d</tt> bootup scripts, which were then published at
GitHub.</p>
<p>On February 19, 2014, &a.rodrigc; notified the &os; developers
that Jenkins was running in the &os; cluster, and that they
could look at the web interface to see the status of builds.</p>
<p>On March 13, 2014, &a.rodrigc; gave a presentation of the
Jenkins work at the Bay Area &os; User Group (BAFUG) in Mountain
View, California, USA. Video of the presentation was recorded
and put online by iXsystems.</p>
<p>&a.rodrigc; assembled a team of volunteers,
<tt>jenkins-admin</tt>, to help maintain
<tt>jenkins.FreeBSD.org</tt> and expand the use of Jenkins CI
used in the &os; cluster. <tt>jenkins-admin</tt> consists of
the following people working in the following areas:</p>
<ul>
<li>R. Tyler Croy is both a &os; developer and a Jenkins
developer. He will be working on fixing bugs in Jenkins
specific to &os;. He is first looking at fixing the libpam4j
library which is used by Jenkins to interface with the PAM
system for user authentication. The released version of
libpam4j does not currently work on &os;.</li>
<li>&a.lwhsu; maintains the <tt>devel/jenkins</tt> port. He set
up a Jenkins build which rans the scan-build static analyzer
which is part of LLVM.</li>
<li>&a.skreuzer; has experience administering Jenkins systems.
He set up several builds on <tt>jenkins.FreeBSD.org</tt>,
including a Jenkins build of the &os; documentation. He is
looking into automatic provisioning of VM's running Jenkins in
the &os; cluster using Ansible.</li>
<li>&a.rodrigc; will be running a Continuous Testing working
group at the &os; Devsummit in Ottawa on May 15, 2014.
He will also give a Jenkins presentation on May 17, 2014.
He is interested in working with &a.jmmv; to
integrate Jenkins and Kyua. They have exchanged
some emails about this on the <tt>freebsd-testing</tt> list.</li>
<li>&a.swills; maintains the <tt>devel/jenkins-lts</tt> port.
He has implemented several builds at <tt>jenkins.FreeBSD.org</tt>
which detect commits to the &os; ports repository, and then
builds the ports tree using Poudrière.</li>
</ul>
<p>At the end of March, &a.novel; reported to
<tt>jenkins-admin</tt> that he has successfully run the Jenkins
libvirt plugin with his libvirt modifications to integrate with
bhyve. He provided a link to a blog posting where he described
his experience.</p>
</body>
<sponsor>iXsystems, Inc</sponsor>
<help>
<task>Obtain certificates for LDAP and web servers, to replace
self-signed certificates.</task>
<task>Set up more Jenkins builds of the &os; base repository on
different branches and with different configurations.</task>
<task>Set up more Jenkins builds of the &os; ports repository on
different &os; versions.</task>
<task>Integrate with Kyua, so that Jenkins can run Kyua tests, and
report the results directly in the native Jenkins web UI where
test results are reported.</task>
<task>Write scripts which can take a Jenkins build of &os;, and
boot the results in a bhyve VM or on real hardware.</task>
<task>Fix libpam4j on &os;.</task>
<task>Continuous Testing working group at Devsummit on May 15, 2014</task>
<task>Jenkins presentation at BSDCan on May 17, 2014</task>
</help>
</project>
</report>