Slides of a meetup I gave: https://www.meetup.com/full-stack-developer-il/events/245611354/
The talk will introduced the goal to providing a better usage of Jenkins pipeline framework by:
- Walk thought an implementation of a project-pipeline solution.
- Jenkins pipeline touch base.
- Explore advanced Jenkins pipeline features.
- Provide best practices and tips.
- Aim toward DevOps-as-a-code solution.
6. Tikal KnowledgeTikal Knowledge
MISSION CHECKLIST
q MOVE ALL ACTIVE JOBS FROM JENKINS 1.X
SERVER TO JENKINS 2.X SERVER
q REDUCE THE NUMBER OF JOBS WHEN
POSSIBLE
q INSTALL NOTHING ON THE JENKINS SERVER
q CONTINUE THE SEQUENCED BUILD NUMBERS
WHEN NEEDED
q FASTER JOBS (TOWARD CI)
q USE JENKINS PIPELINE FOR CODING THE
JOBS
q USE DOCKER AS THE PLATFORM TO RUN THE
JOBS ON
q USE SLACK NOTIFICATIONS
q UNIFIED VIEWS, JOBS, AND
NOTIFICATIONS
q REUSABLE CODE
q USE OF SHARED LIBRARIES
q BASIC FLOWS IMPLEMENTATION
q DEVELOPERS CAN WRITE NEW PIPELINES
EASILY
q BETTER NIGHTLY CI JOB
26. Tikal KnowledgeTikal Knowledge
SMART SLACK NOTIFICATIONS
v STATUS-BASED BEHAVIOUR AND MESSAGES
v AUTO CHANNEL DETECTION
v TESTS DETECTION MESSAGES
v INFORMATIVE LINKS AND HIGHLIGHTED MESSAGES
v ADVANCED STEP PARAMETERS
34. Tikal KnowledgeTikal Knowledge
PARALLEL TESTS RUN
v REDUCE OVERALL TESTS RUN
v ENABLE RUN OF FILTERED TESTS SUITES
v BETTER TESTS REPORTS
v BETTER CI
SELENIUM TESTS
API TESTS
35. Tikal Knowledge
YOU CAN’T STOP THE CHANGE,
ANY MORE THAN YOU CAN STOP
THE SUNS FROM SETTING.
Shmi Skywalker
37. Tikal KnowledgeTikal Knowledge
JENKINS INSIDE CODE REPOSITORY
q SHIFT-LEFT APPROACH
q CODE/BUILD DEPENDENCY CASES
q REDUCE NUMBER OF REPOSITORIES
q KEEP BUILD-CODE CLOSE TO DEV
q JENKINS CODE TEND TO BECOME STEADY
q RARE CODE/BUILD DEPENDENCY CASES
q DIFFERENT LIFE-CYCLE AND VERSIONING
q LIBRARY HIERARCHY IN SAME PLACE
q DIFFERENT VALIDATION LOGIC
q NON-EASY CROSS-REPOSITORIES REFACTORING
PROS CONS
39. Tikal KnowledgeTikal Knowledge
MAKE SOME ORDER HERE
v VIEW PER TEAM/SUBJECT/CONTEXT
v VIEW JOBS WITH SAME PREFIX IN
NAME
v MATCHING SLACK CHANNEL PER VIEW
v (POSSIBLE) SECURITY PER VIEW
v POSSIBLE DUPLICATE INSTANCES OF
SAME PIPELINE IN DIFFERENT VIEWS
45. Tikal KnowledgeTikal Knowledge
MISSION STATUS
q MOVE ALL ACTIVE JOBS FROM JENKINS 1.X
SERVER TO JENKINS 2.X SERVER
ü REDUCE THE NUMBER OF JOBS WHEN
POSSIBLE
ü INSTALL NOTHING ON THE JENKINS SERVER
ü CONTINUE THE SEQUENCED BUILD NUMBERS
WHEN NEEDED
ü FASTER JOBS (TOWARD CI)
ü USE JENKINS PIPELINE FOR CODING THE
JOBS
ü USE DOCKER AS THE PLATFORM TO RUN THE
JOBS ON
ü USE SLACK NOTIFICATIONS
ü UNIFIED VIEWS, JOBS, AND
NOTIFICATIONS
ü REUSABLE CODE
ü USE OF SHARED LIBRARIES
ü BASIC FLOWS IMPLEMENTATION
ü DEVELOPERS CAN WRITE NEW PIPELINES
EASILY
ü BETTER NIGHTLY CI JOB
49. Tikal KnowledgeTikal Knowledge
JENKINS PIPELINE UNIT
https://github.com/jenkinsci/JenkinsPipelineUnit
v TEST YOUR PIPELINE WITH MOCKS
v TEST SHARED LIBRARIES
v TESTS-AS-CODE
50. Tikal KnowledgeTikal Knowledge
v CONFIGURE JENKINS SERVER AS CODE
v VERY NEW AND INTERESTING PROJECT
v USE HTTPS://GITHUB.COM/SHELLEG/ANSIBLE-
ROLE-CUSTOM-JENKINS FOR NOW
CONFIGURATION AS CODE PLUGIN
https://github.com/jenkinsci/configuration-as-code-plugin
51. Tikal KnowledgeTikal Knowledge
v CONVERT SINGLE
FREESTYLE JOB TO
PIPELINE
v CONVERT CHAIN OF
FREESTYLE JOBS TO
SINGLE PIPELINE
AUTO-CONVERT JOB TO PIPELINE
https://jenkins.io/blog/2017/12/15/auto-convert-freestyle-jenkins-jobs-to-coded-pipeline/
53. Tikal KnowledgeTikal Knowledge
TIKAL SHARED LIBRARY
v HTTPS://GITHUB.COM/TIKALK/TIKAL-PIPELIB
v SIMPLE STEPS
v COMPLEX FLOWS
v SHARED WITH THE COMMUNITY
54. Tikal KnowledgeTikal Knowledge
TIKAL SHARED PIPELINES
v HTTPS://GITHUB.COM/TIKALK/TIKAL-PIPELIB-TOUCHSTONE
v PIPELINE EXAMPLES
v TESTS FOR TIKAL-PIPELIB
v SHARED WITH THE COMMUNITY