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
JCConf2016 Jenkins Pipeline
Search
Ching Yi Chan
October 11, 2016
How-to & DIY
2
770
JCConf2016 Jenkins Pipeline
JCConf 2016 For Jenkins Pipeline, see:
https://github.com/qrtt1/JCConf2016_JenkinsPipeline
Ching Yi Chan
October 11, 2016
Tweet
Share
More Decks by Ching Yi Chan
See All by Ching Yi Chan
[coscup] Reading and modifying the source code of the dbt adapter
qrtt1
0
67
twjug-lite-17 結束了幾個月的 Java Web 培訓 站在人蔘迷途的我
qrtt1
0
56
[twjug-lite] 迷你研發部 [1]
qrtt1
0
1.1k
寫個好懂的程式
qrtt1
1
500
OAuth 2.0 Authorization Code Flow
qrtt1
0
190
types of knowledge
qrtt1
1
1.1k
twjug 小活動
qrtt1
0
330
TWJUG 2019
qrtt1
0
160
Learning Concepts
qrtt1
0
150
Other Decks in How-to & DIY
See All in How-to & DIY
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
1
180
教習資料PDF_4. 交差点編(優先・非優先)
sawagaku
0
5.9k
事前準備_ファームウェア解析に触れてみよう!
owaspkansai
0
200
今こそスマートハウス!
runrunsan
0
3k
[너구리랑! 회고 밋업 2023] GTD & PARA -머릿속이 복잡하던 일상에 적용한 정리법 // 토르 님
develop_neoguri
1
110
Dirbtinis intelektas dizainerio gyvenime
lekevicius
0
150
見極めと情報収集でスタートダッシュ_株式会社コミュカル 松岡 光隆
comucal
PRO
0
210
【バスケ】ボックススコアを用いたオールインワンメトリクス作成手続き
rnsr0371
0
320
Notionでの快適メモ術
ayumu11
0
600
ブックマークチームでアクセシビリティを広める際に直面した問題と、如何にして立て直していったか
lunastera
0
660
一番やさしいDJ入門 2024
stefafafan
6
1.4k
Open Source Sonne tanken | Wallboxen mit evcc smarter machen
naltatis
1
2k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
BBQ
matthewcrist
80
8.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
Being A Developer After 40
akosma
57
580k
Code Reviewing Like a Champion
maltzj
514
39k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
GitHub's CSS Performance
jonrohan
1025
450k
Transcript
Jenkins Pipeline 簡介 qrtt1 Ҟᑺ
什麼是 Pipeline • Delivery Pipeline (from Continuous Delivery) • Jenkins
Workflow Plugins • Job Workflow Pipeline • Pipeline 由多個 Step 組成,並且⽀支援 Pause/Resume • Pipeline 內的狀態必需可序列化 (Serializable) • 或宣告為不必列⼊入狀態 @NonCPS 的 function
為什麼是 Pipeline • 依然是 Jenkins Job 的⼀一種,依然很 FreeStyle。 • 為的是
Pipeline as Code • 它是 groovy DSL (domain specific language) و͉છՓ ˢ FreeStyle һ FreeStyle
Pipeline DSL • Jenkins 的 Pipeline 介紹 https://jenkins.io/solutions/pipeline/ • Pipeline
寫作教學 https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md • Pipeline 設計說明 https://github.com/jenkinsci/workflow-cps-plugin/blob/master/README.md • Pipeline Steps Reference https://jenkins.io/doc/pipeline/steps/ • Pipeline 最佳實踐 https://www.cloudbees.com/blog/top-10-best-practices-jenkins-pipeline-plugin ˴ࠅவࡈ ༾Ցਪᕚݟவࡈ
建⽴立 Pipeline Job • Pipeline Script from in-place editor •
Pipeline Script from SCM • Multi-branch Pipeline (from SCM) પᑥԴ͜4$.ٙ˙ό ቇΥఊਖ਼ࣩdʔΝචݬٙ1JQFMJOFІਗܔͭ සપᑥᏐ͜ᗇ᜕4DSJQUႧج
建⽴立 Pipeline 的⽅方式 • Pipeline Script Editor
建⽴立 Pipeline 的⽅方式 • Pipeline Script from SCM
Pipeline 規劃 SCM Checkout War Build Test SCM Commit Deploy
Release
Pipeline Script DEMO/Overview
Steps: node, stage, echo node { stage ('checkout') { echo
'checkout from git' } stage ('build') { echo 'build' } // … skip … } ίࡳɓ̨ዚኜൺ ࡳɓࡈචݬ ਂԬʡჿ
Steps: git stage ('checkout') { echo 'checkout from git' git
url: 'https://my-scm/path/my-project.git' branch: 'master' } optional
Steps: dir, pwd, sh (bat) dir ('project') { pwd() stage
('build') { sh """gradle clean build""" } stage ('test') { sh """gradle check""" } // … skip … }
Steps: step, archiveArtifacts stage ('archive') { step([$class: 'ArtifactArchiver', artifacts:
"build/**/*.war", fingerprint: true]) } stage ('archive') { archiveArtifacts artifacts: "build/**/*.war", fingerprint: true } ᔚٙᄳج อٙᄳج requires Jenkins 2.2+ with newer plugins
Refactoring Pipeline • 使⽤用 Function 合併多個 steps 為⼀一個有意義的動作 • 實作新的
Pipeline Step • 使⽤用 Pipeline Shared Libraries Ыဵək ೌج༨1JQFMJOF4DSJQUԴ͜ ̥ঐપญl https://github.com/jenkinsci/workflow-cps-global-lib-plugin https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin
Pipeline Shared Library • 使⽤用⽅方法 • 啟⽤用 Jenkins ssh (因為
Jenkins 內建的 git repo ⺫⽬目前僅能 ssh auth) • 安裝 Plugin (id: workflow-cps-global-lib) • 使⽤用 git 指令 commit & push 提交 Shared Library 並在 Pipeline Script 開始使⽤用 https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+SSH XFCDPOTPMFฤరQMVHJOҬʔՑd͜DMJٜટܲༀыl
Pipeline 使⽤用⼼心得 • Pipeline as Code 可以⽅方便版本管理 • 內建的 Pipeline
Step 不夠多,得常得依賴 sh 或 bat 呼叫外部指令。 • 間接使⽤用 DevOps Tool 處理 • Ansible, Chef, Puppet • Ant, Maven, Gradle
Q & A