SlideShare a Scribd company logo
1 of 56
Download to read offline
把玩 Jenkins CI
Hao Lee, iOS @ Taipei
2017/12/12
Jenkins CI 簡介
• ⼀一套開源的持續整合⼯工具
• 可以與版本管理理伺服器連動
• 可將測試報告以 HTML ⽅方式呈現
• 安裝外掛有更更多報表,例例:⾏行行數計算、覆蓋率
安裝 Jenkins CI
• 可透過官網或 Homebrew 安裝
• 使⽤用 Homebrew 可隨時切換舊有版本
• 2.91版 + RVM 是場悲劇
• 有⼀一般版、LTS版
• 官網版會創建⼀一個共享級別的使⽤用者
前置準備
• JDK 7 或 8
• 使⽤用 JDK 9 會無法安裝 java-runtime plugin
• Xcode CLT
• Homebrew
啟動 Jenkins
• 啟動前需確認是否需要讓外部可連線
• 啟動指令為:brew services start jenkins
• 初次啟動需填入安全密碼,密碼存放位置參參考⾴頁
⾯面提⽰示
• 初次啟動需創建管理理者帳號
修改參參數
解鎖 Jenkins
啟動 Jenkins
Jenkins 外掛
• AnsiColor:輸出⽂文字可帶顏⾊色
• Cobertura:處理理覆蓋率報告
• GitHub Authentication:使⽤用 GitHub 帳號登入
Jenkins
• GitHub Issues:創建 GitHub Issues
關閉登入驗證
設定錯誤造成無法登入或無⼈人擁有最⾼高權限時的補救⽅方法
關閉登入驗證
設定錯誤造成無法登入或無⼈人擁有最⾼高權限時的補救⽅方法
false
Jenkins 外掛
• Rvm:讓 Jenkins 作業套⽤用 RVM
• SLOCCount:處理理 cloc 報告
• Startup Trigger:可啟動時觸發作業
• Throttle Concurrent Builds:分類建置作業
• Timestamper:輸出⽂文字旁顯⽰示時間
環境設定
避免Command Line中⽂文亂碼
讓 Jenkins 可使⽤用 Homebrew
設定git登入⽅方式
以帳密登入,不⽀支援兩兩階段登入
建立新作業
設定建置群組
有使⽤用 submodule 記得要額外設定
觸發⽅方式
建置環境
建置過程
基本上,過程全寫進 fastlane 裡了了
產⽣生覆蓋率報告⾴頁⾯面
發佈⾃自定的網⾴頁
產⽣生各種報告⾴頁⾯面
保留留指定的檔案
保留留指定的檔案
Email 通知建置失敗
最後
你會得到這種⾴頁⾯面
Q & A

More Related Content

What's hot (20)

C Structures & Unions
C Structures & UnionsC Structures & Unions
C Structures & Unions
 
Data structures & algorithms lecture 3
Data structures & algorithms lecture 3Data structures & algorithms lecture 3
Data structures & algorithms lecture 3
 
Lecture 6: linked list
Lecture 6:  linked listLecture 6:  linked list
Lecture 6: linked list
 
2. HTML forms
2. HTML forms2. HTML forms
2. HTML forms
 
Ai lecture 003(unit03)
Ai lecture  003(unit03)Ai lecture  003(unit03)
Ai lecture 003(unit03)
 
Entity Relationship Modelling
Entity Relationship ModellingEntity Relationship Modelling
Entity Relationship Modelling
 
Comparable and comparator – a detailed discussion
Comparable and comparator – a detailed discussionComparable and comparator – a detailed discussion
Comparable and comparator – a detailed discussion
 
Lecture8 data structure(graph)
Lecture8 data structure(graph)Lecture8 data structure(graph)
Lecture8 data structure(graph)
 
Data Structure -List Stack Queue
Data Structure -List Stack QueueData Structure -List Stack Queue
Data Structure -List Stack Queue
 
Arrays
ArraysArrays
Arrays
 
Searching in c language
Searching in c languageSearching in c language
Searching in c language
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Css properties
Css propertiesCss properties
Css properties
 
Operator Precedence and Associativity
Operator Precedence and AssociativityOperator Precedence and Associativity
Operator Precedence and Associativity
 
Array
ArrayArray
Array
 
Heapsort ppt
Heapsort pptHeapsort ppt
Heapsort ppt
 
Graphics Programming in C
Graphics Programming in CGraphics Programming in C
Graphics Programming in C
 
Understanding storage class using nm
Understanding storage class using nmUnderstanding storage class using nm
Understanding storage class using nm
 
Command line-arguments-in-java-tutorial
Command line-arguments-in-java-tutorialCommand line-arguments-in-java-tutorial
Command line-arguments-in-java-tutorial
 
APRIORI ALGORITHM -PPT.pptx
APRIORI ALGORITHM -PPT.pptxAPRIORI ALGORITHM -PPT.pptx
APRIORI ALGORITHM -PPT.pptx
 

Similar to 把玩 Jenkins CI

Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...Jimmy Lai
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github TutorialTing Wen Su
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
Linux Container Introduction
Linux Container IntroductionLinux Container Introduction
Linux Container Introduction家弘 周
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationnetdbncku
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛Edward Kuo
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式Bo-Yi Wu
 
2, installation
2, installation2, installation
2, installationted-xu
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0國昭 張
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具taobao.com
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰Paul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill Huang
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略Will Huang
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorialazole Lai
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)LetAgileFly
 

Similar to 把玩 Jenkins CI (20)

Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Linux Container Introduction
Linux Container IntroductionLinux Container Introduction
Linux Container Introduction
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 
2, installation
2, installation2, installation
2, installation
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 

More from Hao Lee

客製化換頁動畫
客製化換頁動畫客製化換頁動畫
客製化換頁動畫Hao Lee
 
Coding Freestyle
Coding FreestyleCoding Freestyle
Coding FreestyleHao Lee
 
SceneKit 簡介
SceneKit 簡介SceneKit 簡介
SceneKit 簡介Hao Lee
 
105-2 iOS程式設計(十七)
105-2 iOS程式設計(十七)105-2 iOS程式設計(十七)
105-2 iOS程式設計(十七)Hao Lee
 
105-2 iOS程式設計(十五)
105-2 iOS程式設計(十五)105-2 iOS程式設計(十五)
105-2 iOS程式設計(十五)Hao Lee
 
105-2 iOS程式設計(十四)
105-2 iOS程式設計(十四)105-2 iOS程式設計(十四)
105-2 iOS程式設計(十四)Hao Lee
 
105-2 iOS程式設計(十三)
105-2 iOS程式設計(十三)105-2 iOS程式設計(十三)
105-2 iOS程式設計(十三)Hao Lee
 
105-2 iOS程式設計(十二)
105-2 iOS程式設計(十二)105-2 iOS程式設計(十二)
105-2 iOS程式設計(十二)Hao Lee
 
105-2 iOS程式設計(十一)
105-2 iOS程式設計(十一)105-2 iOS程式設計(十一)
105-2 iOS程式設計(十一)Hao Lee
 
105-2 iOS程式設計(十)
105-2 iOS程式設計(十)105-2 iOS程式設計(十)
105-2 iOS程式設計(十)Hao Lee
 
105-2 iOS程式設計(九)
105-2 iOS程式設計(九)105-2 iOS程式設計(九)
105-2 iOS程式設計(九)Hao Lee
 
105-2 iOS程式設計(八)
105-2 iOS程式設計(八)105-2 iOS程式設計(八)
105-2 iOS程式設計(八)Hao Lee
 
105-2 iOS程式設計(七)
105-2 iOS程式設計(七)105-2 iOS程式設計(七)
105-2 iOS程式設計(七)Hao Lee
 
105-2 iOS程式設計(六)
105-2 iOS程式設計(六)105-2 iOS程式設計(六)
105-2 iOS程式設計(六)Hao Lee
 
105-2 iOS程式設計(五)
105-2 iOS程式設計(五)105-2 iOS程式設計(五)
105-2 iOS程式設計(五)Hao Lee
 
105-2 iOS程式設計(四)
105-2 iOS程式設計(四)105-2 iOS程式設計(四)
105-2 iOS程式設計(四)Hao Lee
 
105-2 iOS程式設計(三)
105-2 iOS程式設計(三)105-2 iOS程式設計(三)
105-2 iOS程式設計(三)Hao Lee
 
105-2 iOS程式設計(二)
105-2 iOS程式設計(二) 105-2 iOS程式設計(二)
105-2 iOS程式設計(二) Hao Lee
 
105-2 iOS程式設計(一)
105-2 iOS程式設計(一)105-2 iOS程式設計(一)
105-2 iOS程式設計(一)Hao Lee
 

More from Hao Lee (19)

客製化換頁動畫
客製化換頁動畫客製化換頁動畫
客製化換頁動畫
 
Coding Freestyle
Coding FreestyleCoding Freestyle
Coding Freestyle
 
SceneKit 簡介
SceneKit 簡介SceneKit 簡介
SceneKit 簡介
 
105-2 iOS程式設計(十七)
105-2 iOS程式設計(十七)105-2 iOS程式設計(十七)
105-2 iOS程式設計(十七)
 
105-2 iOS程式設計(十五)
105-2 iOS程式設計(十五)105-2 iOS程式設計(十五)
105-2 iOS程式設計(十五)
 
105-2 iOS程式設計(十四)
105-2 iOS程式設計(十四)105-2 iOS程式設計(十四)
105-2 iOS程式設計(十四)
 
105-2 iOS程式設計(十三)
105-2 iOS程式設計(十三)105-2 iOS程式設計(十三)
105-2 iOS程式設計(十三)
 
105-2 iOS程式設計(十二)
105-2 iOS程式設計(十二)105-2 iOS程式設計(十二)
105-2 iOS程式設計(十二)
 
105-2 iOS程式設計(十一)
105-2 iOS程式設計(十一)105-2 iOS程式設計(十一)
105-2 iOS程式設計(十一)
 
105-2 iOS程式設計(十)
105-2 iOS程式設計(十)105-2 iOS程式設計(十)
105-2 iOS程式設計(十)
 
105-2 iOS程式設計(九)
105-2 iOS程式設計(九)105-2 iOS程式設計(九)
105-2 iOS程式設計(九)
 
105-2 iOS程式設計(八)
105-2 iOS程式設計(八)105-2 iOS程式設計(八)
105-2 iOS程式設計(八)
 
105-2 iOS程式設計(七)
105-2 iOS程式設計(七)105-2 iOS程式設計(七)
105-2 iOS程式設計(七)
 
105-2 iOS程式設計(六)
105-2 iOS程式設計(六)105-2 iOS程式設計(六)
105-2 iOS程式設計(六)
 
105-2 iOS程式設計(五)
105-2 iOS程式設計(五)105-2 iOS程式設計(五)
105-2 iOS程式設計(五)
 
105-2 iOS程式設計(四)
105-2 iOS程式設計(四)105-2 iOS程式設計(四)
105-2 iOS程式設計(四)
 
105-2 iOS程式設計(三)
105-2 iOS程式設計(三)105-2 iOS程式設計(三)
105-2 iOS程式設計(三)
 
105-2 iOS程式設計(二)
105-2 iOS程式設計(二) 105-2 iOS程式設計(二)
105-2 iOS程式設計(二)
 
105-2 iOS程式設計(一)
105-2 iOS程式設計(一)105-2 iOS程式設計(一)
105-2 iOS程式設計(一)
 

把玩 Jenkins CI