SlideShare a Scribd company logo
1 of 22
Download to read offline
⼗十分鐘上⼿手 iOS Jenkins CI
William Kuo 郭亭巖
iOS@Taipei 2017-11-20
你可以從這份PPT中得到
• Jenkins & CI
1. 基本觀念念
2. Jenkins 如何做到 CI
3. 在 iOS Project 可以做到什什麼
4. Jenkins 的其他功能
• Jenkins 實作流程
1. 安裝流程
2. 設定 Xcode 項⽬目
3. 設定 Git
4. 構建觸發
5. 單元測試
6. ⾃自由串串接Shell
Jenkins & CI
CI (持續集成)
“「持續集成」是指開發階段,對項⽬目進⾏行行持續性的⾃自動化編
譯、測試,以達到控制代碼質量量的⽅方式。” (MBA智庫百科)
「持續集成」 = 透過定時或觸發的⽅方式,⾃自動檢查項⽬目狀狀
態並確保程式能通過測試。 (我的理理解)
Build Test Analyze
CI 的好處
1. 隨時可準備部署
2. 項⽬目狀狀態透明化,提早發現錯誤
3. 減少重複過程 (⾃自動編譯、分發、準備部署、測試)
4. 隨時測試,降低測試壓⼒力力
Jenkins 如何做到 CI
觸發
Pull
Run
Trigger
Analyze
Build Test
Deploy
觸發
Analyze
Continuous
Build Test
Deploy
Integration
在 iOS Project 可以做什什麼?
1. ⾃自動引入 Git 倉庫程式碼
2. ⾃自動 build、 test、 archive ipa
3. 定時排程建置
4. 綁定 git push 時建置
5. 設定事件通知使⽤用者
6. 在建置過程中加入 Shell script
可檢視專案和建置狀狀態
可綁定許多外掛 (EX: Diawi )
Jenkins 的其他功能
動⼿手吧!
Jenkins 實作流程
Jenkins 安裝流程
外掛下載 (我選左邊)
創 Admin User
下載 & 啟動
Jenkins 後台
• Xcode Integration (essential)
• Keychains and Provisioning Profiles Management (essential)
• Git Plugin (default)
• Git Lab Plugin / GitLab Hook Plugin (optional)
新增外掛
Jenkins 設定 Xcode 項⽬目
Keychains and Provisioning …
login.Keychain-db 

-> login.Keychain
Jenkins 設定 Xcode 項⽬目
新增/編輯 專案
Jenkins 設定 Xcode 項⽬目
ipa path
Jenkins 設定 Xcode 項⽬目
原始碼管理理
Jenkins 綁定 Git
Jenkins 建置觸發程序
1. 遠端觸發建置
2. Build after other projects are built
3. GitHub hook trigger for GITScm polling
4. 定期建置
5. 輪輪詢SCM
定期建置
GitHub hook trigger
for GITScm polling
每次 push 都重新構建
遠端觸發構建
使⽤用Shell來來執⾏行行Test
完整的cli
在console output成功
Jenkins 單元測試
使⽤用Shell來來執⾏行行 ipa-sender
完整的cli
成功
Jenkins ⾃自由串串接Shell
Thank you !

More Related Content

What's hot

What's hot (10)

多媒體伺服器加分題
多媒體伺服器加分題多媒體伺服器加分題
多媒體伺服器加分題
 
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
 
[2018 DevOps Days]大型企業如何推行DevOps
[2018 DevOps Days]大型企業如何推行DevOps[2018 DevOps Days]大型企業如何推行DevOps
[2018 DevOps Days]大型企業如何推行DevOps
 
[Study4.TW .NET Conf 2019]看,用 Azure 建立工業 4.0 的第一步
[Study4.TW .NET Conf 2019]看,用 Azure 建立工業 4.0 的第一步[Study4.TW .NET Conf 2019]看,用 Azure 建立工業 4.0 的第一步
[Study4.TW .NET Conf 2019]看,用 Azure 建立工業 4.0 的第一步
 
互联网持续交付整形记
互联网持续交付整形记互联网持续交付整形记
互联网持续交付整形记
 
DevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline ToolsDevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline Tools
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004
 

Similar to 十分鐘上手 I os jenkins ci

Continuous integration
Continuous integrationContinuous integration
Continuous integration
netdbncku
 
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
drewz lin
 
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
奕孝 陳
 
持續整合與單元測試
持續整合與單元測試持續整合與單元測試
持續整合與單元測試
昱劭 劉
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
LetAgileFly
 
持续集成入门
持续集成入门持续集成入门
持续集成入门
Lieping Xie
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
netdbncku
 
PyCon China 2012 孙毅
PyCon China 2012 孙毅PyCon China 2012 孙毅
PyCon China 2012 孙毅
Yi Sun
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
Qiao Liang
 
應用 Sikuli 在 Android 設備上執行自動化測試
應用 Sikuli 在 Android 設備上執行自動化測試應用 Sikuli 在 Android 設備上執行自動化測試
應用 Sikuli 在 Android 設備上執行自動化測試
Jz Chang
 

Similar to 十分鐘上手 I os jenkins ci (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
 
Tcon分享 芈峮
Tcon分享 芈峮Tcon分享 芈峮
Tcon分享 芈峮
 
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...
 
DevSecOps-The Key of Continuous Security
DevSecOps-The Key of Continuous SecurityDevSecOps-The Key of Continuous Security
DevSecOps-The Key of Continuous Security
 
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
 
持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110
 
持續整合與單元測試
持續整合與單元測試持續整合與單元測試
持續整合與單元測試
 
把玩 Jenkins CI
把玩 Jenkins CI把玩 Jenkins CI
把玩 Jenkins CI
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
持续集成入门
持续集成入门持续集成入门
持续集成入门
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
 
PyCon China 2012 孙毅
PyCon China 2012 孙毅PyCon China 2012 孙毅
PyCon China 2012 孙毅
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
 
應用 Sikuli 在 Android 設備上執行自動化測試
應用 Sikuli 在 Android 設備上執行自動化測試應用 Sikuli 在 Android 設備上執行自動化測試
應用 Sikuli 在 Android 設備上執行自動化測試
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
 
twMVC#17 | 使用Angular.js開發大型系統架構
twMVC#17 | 使用Angular.js開發大型系統架構twMVC#17 | 使用Angular.js開發大型系統架構
twMVC#17 | 使用Angular.js開發大型系統架構
 

十分鐘上手 I os jenkins ci