Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing Jenkins with Gradle
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Gary Hale
June 13, 2014
Programming
0
180
Managing Jenkins with Gradle
From Gradle Summit 2014
Gary Hale
June 13, 2014
Tweet
Share
More Decks by Gary Hale
See All by Gary Hale
Building a Continuous Delivery Pipeline with Gradle and Jenkins
ghale
0
98
Introduction to Glu
ghale
0
100
Introduction to Liquibase
ghale
0
930
Gradle - Build Automation Made Easy
ghale
0
71
Other Decks in Programming
See All in Programming
Patterns of Patterns
denyspoltorak
0
1.4k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
dchart: charts from deck markup
ajstarks
3
1k
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.3k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
Featured
See All Featured
Building Adaptive Systems
keathley
44
2.9k
How STYLIGHT went responsive
nonsquared
100
6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
RailsConf 2023
tenderlove
30
1.3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
93
Embracing the Ebb and Flow
colly
88
5k
Skip the Path - Find Your Career Trail
mkilby
0
57
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
Managing Jenkins With Gradle Gary Hale Gradle Summit 2014
Who is this guy? 15+ years in DevOps Gradle Weenie
Compulsive Automator
What you should do Ask questions! Interrupt / Interact Complete
the Evaluation
What We’ll Talk About Evolution Jenkins Plugin Basics Demonstrations
Extensible Open Source Active Ecosystem Why is Jenkins Awesome? Jenkins
Open Source Distributed Model Distributed Model Extensible
Why is Jenkins Not Awesome? When we get beyond a
handful of Jobs, it becomes tedious to maintain
Couple Configuration with Project Track Changes Motivations Discipline Track Changes
Couple Configuration with Project Perform Validations/Comparison
Leverage Existing Skillset DRY Delegate Minimize Overhead Rebuild from Scratch
Delegate Motivations Maintenance Minimize Overhead DRY Rebuild from Scratch Leverage Existing Skillset Enforce Standards
Evolution of Jenkins Management Manual Solutions Manual Edits Copy From
Existing Script Solutions Script Console System Groovy Script Scriptler Job-like Solutions Jenkins Template Plugin Jenkins Job DSL Plugin External Solutions Jenkins Job Builder Gradle Jenkins Plugin Growth / Complexity
Manual Solutions “Nothing is as simple as we hope it
will be.” Jim Horning
Limited Parameters Groovy Jenkins Model Extremely Powerful Script Solutions Limited
Parameters Jenkins Model Extremely Powerful Groovy Better for One-offs
Many-to-one Template Jobs Job-like Solutions Template Jobs Job Template Plugin
Many-to-one Best When Combined
Storable No Validation Template Jobs Powerful DSL Job-like Solutions Powerful
DSL Job DSL Plugin Storable Template Jobs No Validation One instance
Openstack Clean Configuration Python/Yaml External Solutions Python/Yaml Jenkins Job Builder
Openstack Purely Declarative Clean Configuration
XML Manipulation Template Jobs Jenkins Job DSL Programmatic External Solutions
Programmatic Gradle Jenkins Plugin XML Manipulation Jenkins Job DSL Template Jobs Create/Delete/Validate
Does it make sense to manage jenkins with a build
automation tool? Question (Think About It…)
Gradle Jenkins Plugin Concepts Gradle (static model) Templates Views Jobs
Jenkins (live model) Views Jobs Updates
deleteJenkinsItems dumpJenkinsItems validateJenkinsItems updateJenkinsItems Gradle Jenkins Plugin updateJenkinsItems Tasks deleteJenkinsItems
validateJenkinsItems dumpJenkinsItems dumpRemoteJenkinsItems
Gradle Jenkins Plugin jenkins { servers { … } templates
{ … } jobs { … } views { … } } Conventions
Servers servers { server1 { url ‘http://jenkins.somewhere.com’ username ‘user1’ password
‘password1’ } } Secured
Servers servers { server1 { url ‘http://jenkins.somewhere.com’ secure false }
} Unsecured
Templates templates { template1 { xml file(‘template.xml’) } } XML
Templates templates { template1 { dsl file(‘template.dsl’) } } DSL
Jobs jobs { build_job1 { server servers.server1 definition { xml
file(‘build_job1.xml’) } } } XML
Jobs jobs { build_job1 { server servers.server1 dsl { using
‘template1’ } } } DSL
Views views { view1 { xml file(‘view1.xml’) } } XML
Views views { view1 { dsl { … } }
} DSL
Multiple DSL Form jenkins { defaultServer servers.server1 dsl fileTree(‘jenkins’).include(‘*.dsl’) dsl
{ … } }
Demonstrations
Does it make sense to manage jenkins with a build
automation tool? Question
Is Gradle a Build Automation Tool? The Right Question
Is a Swiss army knife a knife?
References https://github.com/ghale/gradle-jenkins-plugin https://github.com/ghale/summit2014