Contenu connexe Similaire à Lessons from Jenkins Platform Support (20) Lessons from Jenkins Platform Support3. © 2019 All Rights Reserved. 3
Lessons from Platform Support
Adapting and Adopting
• Java 11
• Windows
• Docker
4. © 2019 All Rights Reserved. 4
What is Jenkins?
• Most popular CI/CD tool in the world
• More than 250 000 active installations
• Open source
• Huge plugin ecosystem (1500+ plugins)
5. © 2019 All Rights Reserved. 5
Jenkins
Under the Hood
• Java
• XML
• Groovy
• Jetty
• …
6. © 2019 All Rights Reserved. 6
Begin the Race – Sep 2017 – May 2018
• Initial experiments
• Build projects that require Java 9+
• Jenkins won’t run with Java 9
• Pipeline won’t run
• Freestyle projects glitches
• Process management broken
• Maven project type not supported
7. © 2019 All Rights Reserved. 7
Worldwide Hackathon – June 2018
• 26 contributors
• Pipeline is working!
• Core and plugin patches submitted
• Development tools working
• Exploratory testing
8. © 2019 All Rights Reserved. 8
Java 11 Preview in Jenkins 2.155 – December 2018
• Weekly release with Java 11 support
• Most crucial plugins running and testing
• Build infrastructure tests Java 8 and Java 11, plugins and core
• On the road to long term support release!
9. © 2019 All Rights Reserved. 9
Java 11 support in Jenkins 2.164 LTS – March 2019
• Long term support release with Java 11 support
• Many more plugins running and testing
• Ready for production use
10. © 2019 All Rights Reserved. 10
Jenkins
One of the largest JVM-based projects
• Automation Framework (too flexible)
• 1500+ plugins
• 10+ years of compatibility
• 1500+ plugins
• Distributed remote execution
• Many, many dependencies
11. © 2019 All Rights Reserved. 11
Java 11 Dependency Updates
• Many, many dependencies
• ASM
• Jetty
• Groovy
• JBoss Marshalling
• JNR, JNA
12. © 2019 All Rights Reserved. 12
Java 9+ - No Longer Visible in Default Classloader
• XML – JAXB
• SQL
• Annotations - javax
• Activation – javax
• RMI – javax
• Tools – javax
• CORBA
• Several of these are widely used
• Alternatives explored with OpenJDK
13. © 2019 All Rights Reserved. 13
No more Java Web Start – Handling Windows Agents & more
• Agent startup from the web user interface
14. © 2019 All Rights Reserved. 14
Tool Upgrades for Java 11
• Latest maven releases
• Plugin and core parent POM’s
• Pipeline (Jenkinsfile) to build plugins
• Java 8 & Java 11
• Linux & Windows
• Jenkins Test Harness
• Acceptance Test Harness
• Plugin Compatibility Tester
• Replace findbugs with spotbugs
• Repair Javadoc for Java 11
• Update docker images for Java 11
15. © 2019 All Rights Reserved. 15
Windows Installer and Build Improvements
• Alex Earl (“slide”) efforts
• Remove 32 bit Java from installer
• Code signing on new installer
• Chocolatey package
16. © 2019 All Rights Reserved. 16
Platform skills?– Join the Platform SIG
• Platform SIG needs
• Java Developers
• Testers
• Writers
• Users – Windows, Linux, FreeBSD,
OpenBSD, zOS, zLinux, ARM, etc.
• https://jenkins.io/sigs/platform