Jenkins
Jenkins is a tool used for Continuous Integration (CI) and testing
Contents
Contact information
For issues with the https://ci.freebsd.org setup with the FreeBSD cluster, contact: jenkins-admin@FreeBSD.org
For all other issues, send e-mail to: freebsd-testing@FreeBSD.org
- IRC: EFNet/#freebsd-ci
Examples of who uses Jenkins
FreeNAS: https://www.ixsystems.com/blog/jenkins-bhyve-and-webdriver-continuous-integration-testing-on-freenas/
Debian: https://jenkins.debian.net/ , https://lists.debian.org/debian-devel-announce/2013/08/msg00005.html
Presentations and Working Groups
BAFUG Presentation: Jenkins in FreeBSD Cluster, March 13, 2014. SLIDES: PDF OpenOffice Slideshare VIDEO: Video
FreeBSD Devsummit Working group: Continuous Testing, May 15, 2014
BSDCan Presentation: Jenkins, BHyve, and WebDriver: Continuous Integration Testing on FreeNAS, May 17, 2014
BSDNow.tv interview on Jenkins and Kyua, June 2014
Jenkins for FreeBSD status
|
Item |
Responsible |
Status |
Note |
1 |
Request machine from clusteradm |
COMPLETED |
||
2 |
Deploy https://jenkins.freebsd.org |
COMPLETED |
|
|
3 |
Get StevenKreuzer access to jenkins host |
COMPLETED |
|
|
4 |
Get LiWenHsu access to jenkins host |
COMPLETED |
|
|
5 |
Get SteveWills access to jenkins host |
COMPLETED |
|
|
6 |
Create jenkins-admin@FreeBSD.org alias |
COMPLETED |
Alias will be used to coordinate Jenkins administration activities. Members include: CraigRodrigues, StevenKreuzer, SteveWills, RTylerCroy, LiWenHsu |
|
7 |
Create scripts for starting Jenkins bhyve VM |
COMPLETED |
Scripts written by CraigRodrigues and used on jenkins host, see: https://lists.freebsd.org/pipermail/freebsd-virtualization/2014-January/002040.html |
|
8 |
Create bhyve VM for FreeBSD 10 for Jenkins |
COMPLETED |
|
|
9 |
Create bhyve VM for FreeBSD 9 for Jenkins |
COMPLETED |
|
|
10 |
Investigate java crashing on FreeBSD 10 |
|
COMPLETED |
* Some discussion on freebsd-java@, see https://lists.freebsd.org/pipermail/freebsd-java/2014-February/010536.html |
11 |
Investigate Jenkins crashing kernel on FreeBSD 9.2 |
COMPLETED |
Due to a kernel mmap() bug in FreeBSD 9.2, the kernel will panic in certain cases if Java runs. This problem is solved by upgrading to FreeBSD 9.2-p3: as per this security advisory: FreeBSD-EN-14:02.nmap.asc |
|
12 |
Create FreeBSD_HEAD build |
COMPLETED |
||
13 |
Create FreeBSD_STABLE-10 build |
COMPLETED |
||
14 |
Create FreeBSD_STABLE-9 build |
COMPLETED |
||
15 |
Create FreeBSD_STABLE-8 build |
COMPLETED |
||
16 |
Create FreeBSD_DOC build |
COMPLETED |
||
17 |
Test libpam4j fixes for FreeBSD |
COMPLETED |
* See: https://issues.jenkins.io/browse/JENKINS-21507 |
|
18 |
Submit proposal for Jenkins working group at BSD Devsummit |
COMPLETED |
Proposal has been accepted. See: DevSummit/201405/Jenkins |
|
19 |
System Security Review |
COMPLETED |
||
20 |
Obtain proper SSL certificate for jenkins.freebsd.org |
|
COMPLETED |
|
21 |
Integrate Jenkins with Kyua |
COMPLETED |
* Initiate discussion about generating Kyua test output in JUnit XML: https://lists.freebsd.org/pipermail/freebsd-testing/2014-February/000199.html |
|
22 |
Integrate Jenkins with Clang scan-build |
COMPLETED |
scripts Repository: https://github.com/freebsd/freebsd-ci/tree/master/jobs/FreeBSD-main-scan_build |
|
23 |
Setup documents |
|
In progress |
|
24 |
Configure Jenkins LDAP authentication |
CraigRodrigues / clusteradm |
COMPLETED |
* LDAP plugin configured to connect to FreeBSD cluster LDAP server. |
25 |
kernel module job |
COMPLETED |
config: https://github.com/lwhsu/freebsd-ci/blob/master/FreeBSD-CURRENT-modules_config.xml |
|
26 |
Setup scan.FreeBSD.org VM |
In Progress |
scan-ci.FreeBSD.org is up, need some further configs https://admbugs.freebsd.org/show_bug.cgi?id=496 (suppressed by ci.freebsd.org cluster) |
|
27 |
Integrate Jenkins with Coverity |
LiWenHsu, uqs |
|
|
28 |
Integrate with igor and checkstyle for handbook |
COMPLETED |
https://jenkins.freebsd.org/jenkins/view/FreeBSD_doc/job/FreeBSD_Doc-igor/ |
TODO Tickets on bugs.FreeBSD.org
Jenkins for FreeBSD architecture
Setup notes
Repositories
https://github.com/freebsd/freebsd-ci , scripts used for booting VM's and running builds in jenkins.freebsd.org cluster
Brainstorming and future ideas
Build slave
- Type 1 VM for other architecture such as arm, mips, sparc
- build in virtualbox is working, it's ok for i386 and amd64
- other arch may need qemu
- Type 2 VM for speed
- build in bhyve is working
Build artifacts & Further tests
- Build auto-install image
- done with pc-sysinstall,
- Build auto-install job with unmodified release media
- like what we provided on freebsd-snapshots@
- scripted installation
- scripted installation from vm-script
- (pre-setup keyboard/mouse combination)
- With above 2, run regression tests, performance tests
Tests in ReleaseEngineering/testing
- Scan builds
Clang scan-build, DONE
- Draw graphs to tracking changes
Interaction with more developers and users
- Project branches jobs
- Co-work with freebsd-git project
- automatically test pull-requests
- External build-slaves
CI for https://github.com/freebsd/pkg
Look at http://jenkins.mouf.net/ maintained by SteveWills as an example.
FreeBSD.org Jenkins cluster
Maintenance
General: Jenkins/Maintenance
Backup: Jenkins/Backup
Plugins we use
https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin |
[Installed Feb. 21, 2014] |
[Installed Feb. 21, 2014] |
|
https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin |
[Installed Feb. 21, 2014] |
https://wiki.jenkins-ci.org/display/JENKINS/Multiple+SCMs+Plugin |
[Installed Mar. 6, 2014] |
[Installed Mar. 15, 2014] |
|
https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin |
[Installed Apr. 2, 2014] |
http://wiki.hudson-ci.org/display/HUDSON/Matrix+Tie+Parent+Plugin |
[Installed Apr. 4, 2014] |
[Installed Apr. 16, 2014] |
|
https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin |
[Installed Jul. 2, 2014] |
https://wiki.jenkins-ci.org/display/JENKINS/SCM+Sync+configuration+plugin |
[Installed Sep. 9, 2014] |
https://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Plugin |
[Installed Oct. 24, 2014] |
Performance Testing