Jenkins
- Jenkins is a tool used for Continuous Integration (CI) and testing
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
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
- BSDNow.tv interview on Jenkins and Kyua, June 2014
Jenkins for FreeBSD status
| Item | Responsible | Status | Note | |
| 1 | Request machine from clusteradm | CraigRodrigues | COMPLETED | https://admbugs.freebsd.org/show_bug.cgi?id=428 |
| 2 | Deploy https://jenkins.freebsd.org | CraigRodrigues | COMPLETED | |
| 3 | Get StevenKreuzer access to jenkins host | clusteradm | COMPLETED | |
| 4 | Get LiWenHsu access to jenkins host | clusteradm | COMPLETED | |
| 5 | Get SteveWills access to jenkins host | clusteradm | COMPLETED | |
| 6 | Create jenkins-admin@FreeBSD.org alias | postmaster | 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 | CraigRodrigues | 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 | CraigRodrigues | COMPLETED | |
| 9 | Create bhyve VM for FreeBSD 9 for Jenkins | CraigRodrigues | 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 * Initial workaround seems to work, setting vm.pmap.pcid_enabled=“0”: https://lists.freebsd.org/pipermail/freebsd-java/2014-February/010586.html * vm.pmap.pcid_enabled=“0” disabled by EdMaste, pending further investigration: https://lists.freebsd.org/pipermail/svn-src-all/2014-March/081647.html Addressed with errata fix in 10.0-p6: https://www.freebsd.org/security/advisories/FreeBSD-EN-14%3A07.pmap.asc |
|
| 11 | Investigate Jenkins crashing kernel on FreeBSD 9.2 | CraigRodrigues | 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 | CraigRodrigues | COMPLETED | |
| 13 | Create FreeBSD_STABLE-10 build | CraigRodrigues | COMPLETED | |
| 14 | Create FreeBSD_STABLE-9 build | StevenKreuzer | COMPLETED | |
| 15 | Create FreeBSD_STABLE-8 build | StevenKreuzer | COMPLETED | |
| 16 | Create FreeBSD_DOC build | StevenKreuzer | COMPLETED | |
| 17 | Test libpam4j fixes for FreeBSD | CraigRodrigues | COMPLETED | * See: https://issues.jenkins.io/browse/JENKINS-21507 * Patch supplied by JungukKim https://people.freebsd.org/~jkim/jna.diff * Pull request with patch filed by Anthony Williams: https://github.com/jenkinsci/jna/pull/2 * Fixed in Jenkins 1.586 here: https://issues.jenkins-ci.org/browse/JENKINS-24521 |
| 18 | Submit proposal for Jenkins working group at BSD Devsummit | CraigRodrigues | COMPLETED | Proposal has been accepted. See: Jenkins |
| 19 | System Security Review | XinLi | COMPLETED | |
| 20 | Obtain proper SSL certificate for jenkins.freebsd.org | COMPLETED | * https://admbugs.freebsd.org/show_bug.cgi?id=472 | |
| 21 | Integrate Jenkins with Kyua | JulioMerino | COMPLETED | * Initiate discussion about generating Kyua test output in JUnit XML: https://lists.freebsd.org/pipermail/freebsd-testing/2014-February/000199.html * Plan proposed: https://lists.freebsd.org/pipermail/freebsd-testing/2014-March/000221.html * 'kyua report-junit' command added to create JUnit XML output from kyua |
| 22 | Integrate Jenkins with Clang scan-build | LiWenHsu | COMPLETED | scripts Repository: https://github.com/freebsd/freebsd-ci/tree/master/jobs/FreeBSD-main-scan_build Results are at https://ci.freebsd.org/job/FreeBSD-main-scan_build/lastCompletedBuild/clangScanBuildBugs/ (update daily) |
| 23 | Setup documents | In progress | Setup_notes | |
| 24 | Configure Jenkins LDAP authentication | CraigRodrigues / clusteradm | COMPLETED | * LDAP plugin configured to connect to FreeBSD cluster LDAP server. * clusteradm help was requested to fix one of the certificate problems with the LDAP server. * Without this fix, LDAP authentication is not working. * Completed, see: LDAP |
| 25 | kernel module job | LiWenHsu | COMPLETED | config: https://github.com/lwhsu/freebsd-ci/blob/master/FreeBSD-CURRENT-modules_config.xml |
| 26 | Setup scan.FreeBSD.org VM | LiWenHsu | 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 | LiWenHsu, WarrenBlock | COMPLETED | https://jenkins.freebsd.org/jenkins/view/FreeBSD_doc/job/FreeBSD_Doc-igor/ |
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 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
-
- Look at http://jenkins.mouf.net/ maintained by SteveWills as an example.
FreeBSD.org Jenkins cluster
Maintenance
- General: Maintenance
- Backup: Backup
Plugins we use
| https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin | [Installed Feb. 21, 2014] |
| https://wiki.jenkins-ci.org/display/JENKINS/Green+Balls | [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] |
| https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin | [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] |
| https://wiki.jenkins-ci.org/display/JENKINS/IRC+Plugin | [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] |