Language, framework & tooling • Good integrations • Source control & team communication • Support complex build pipelines • Store artefacts • Run deployment • Be efficient
work for a project • Pipeline • View - user defined collection of jobs or a workflow • Master - the central Jenkins master, does job scheduling • Agent - executes one or more jobs within slots (executors) • Workspace - the working area where a job is carried out
All jobs must be configured manually • Overhead for multiple (smaller) projects • Source code and job must be kept in sync • Chaining multiple jobs becomes messy • Build • Test • Deploy
• Jenkins jobs as code • Jenkinsfile in source code repository • Always in sync with the code • All changes are logged • Written in Groovy • Declarative syntax • Domain Specific Language (DSL) • Extended by Shared Libraries