member • August 2007 : My first discussion on the mailing list and my first ticket about Jenkins born Hudson 1.131 Contributor on various plugins: • Maven, Xcode, Appaloosa, … Member of the Jenkins infra team • I love to reboot confluence J Support Team Manager at CloudBees, Inc • I help our customers to get the best from Jenkins 3 @aheritier aheritier
on various plugins • build-flow (aka pipeline prequel) • maintainer on git-plugin for 1 year • Some docker plugins Docker Captain Senior Engineer at CloudBees, Inc • I write bugs so Arnaud has a Job 4 @ndeloof ndeloof
really. Lots of great stuff has gone into Jenkins in the last couple years but users don’t know about them! Oh, and some fairly big changes! 10 ~/Code/jenkinsci/jenkins/war (git:master %)$ mvn dependency:list ... [INFO] org.acegisecurity:acegi-security:jar:1.0.7:compile ... [INFO] org.springframework:spring-core:jar:2.5.6.SEC03:compile ... [INFO] com.google.guava:guava:jar:11.0.1:compile ... [INFO] org.codehaus.groovy:groovy-all:jar:1.8.9:compile ...
the software that is eating the world. More shops moving in this direction. Jenkins is a key part of how they get there. New use cases need new user interfaces - one size doesn’t always fit all. How can we make adopting Jenkins for CD smoother without limiting the power Jenkins has for other use cases? 13
site was 6 years old ▸ Old tooling. ▸ Awkward content discovery. ▸ Not a great way to share documentation and guides. • wiki.jenkins-ci.org is there too, but it’s not easy to navigate. Brand • jenkins-ci.org ! CI ?!? ▸ Jenkins isn’t only a CI. 14
configuration is part of the setup wizard! • …because we all forget to configure security sometimes. A better, broader set of plugins included by default! • Less need to go hunting through 1100+ plugins. 18
js-modules Client side Extension points • Blue Ocean libraries are built on ES6 and React.js and provide an extensible client side component model Server Sent Events • UI update in real time 32
Jenkins Codify an implicit series of stages/steps directly in your job definition or into an explicit Jenkinsfile in your/a source repository Built-in global library to share Pipeline scripts, functions, variables across jobs on your master. Extend the DSL with your own steps. Durable tasks keep running while the Jenkins master restarts. 45
Have jobs wait for input from users before continuing to the next step. No more need to glue multiple jobs together to do one connected pipeline across multiple nodes or repos! Run part of the job on one node, then switch to another node! Check out multiple SCM repositories into one job! Resumability from checkpoints (CloudBees Jenkins Platform only) 46
contains reference to the SCM (Git/GitHub, BitBucket, …) • Jenkins takes Pipeline from Jenkinsfile in SCM • Jenkins creates separate subtasks for branches, builds and reports results separately • Pull-request builds Organization Folder Plugin (Same thing for GitHub and BitBucket orgs) • 1 single spec in Jenkins for the many projects • Jenkins creates separate multi-branch folders for each repository 54
of the 2.0 release? Can’t you just update the website whenever? Sure, but like we said, the changes we’re making to the website are to address a lot of the things 2.0 proper is addressing: • On-boarding • Plugin discovery • Documentation • Examples and resources 63
generated • Hard to contribute to - gotta get an account, submit a blog post, etc… Current website • Static site generation • Awestruct and Asciidoc • Contributing? Just submit a pull request to https://github.com/jenkins-infra/jenkins.io and tada! 64
Pages” • Landing pages for collections of docs, blog posts, reference material and advice for specific Jenkins use cases. • i.e., a Ruby solution page, a Docker solution page, etc A one-stop-shop for finding what you *need* to know for your Jenkins usage. ASAP: The Jenkins definitive guide, a real browsable end-user documentation 65
tagged and released April 25th: • Jenkins 2.0 is announced July 6th: • The first LTS based on 2.x: 2.7.1 • 1.x maintenance is stopped Sept 8th: • Jenkins OSS LTS 2.7.4 72
involved changes The “weekly incremental release” model has left big challenges unaddressed Aging user interface layer is difficult to substantially improve 75 https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+2.0
of what happens with them • synchronous: build owns the deployment • asynchronous: external reporters/deployment tools notify Jenkins upon completion Expose what’s “in” Environments • Differences between deployments, e.g. commits, tickets, etc 79
a conceptual “master” across multiple JVMs Prevent need for “hard downtime” to modify, etc Must still run as a single instance Evaluate multi-tenancy via: • Access controls • Per-folder configuration separation • ? 82
But 2.0 is just a drop-in replacement for 1.x • With the exception of the servlet 3.1 (Java EE 7) container pre- requisite (Apache Tomcat 8, Wildfly 8, Glassfish 4, Websphere 9...) and the removal of the AJP connector from the embedded Winstone-Jetty container All the technical evolutions (like javascript modularization) are in place to revolution Jenkins in a near future. The usage of major versions is a good change which will enforce to identify and accept breaking changes to • define a clearer roadmap for users ( 3.x, 4.x, …. ) • organize this middle/long term work within the team 87
Download and discover it from • jenkins.io / jenkins.io/2.0 Give a try to weekly releases and share your feedback with the community • [email protected] • #jenkins IRC channel on Freenode 88