SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
利用雲端服務建立R的
持續整合環境
Wush Wu
Taiwan R User Group
什麼是持續整合?
● 軟體上的每一次程式碼的變動,都有系統能:
○ 自動編譯
○ 自動執行測試
○ 自動回報測試結果
○ 自動部署
● 開發R 套件,也是一種軟體開發
● 持續整合的好處
○ 降低風險
○ 降低人工
○ 增加透明度
○ 提升信心
R 中的單元測試
● RUnit
● testthat
testthat 起手式
● DESCRIPTION
○ Suggests: testthat
● 建立 tests 資料夾
● 建立 tests/test-all.R
● 建立 tests/testthat/test-xxx.R
Hello testthat
● Live Demo
○ 一個失敗的test
○ 一個成功的test
● 取得環境變數
○ Sys.getenv
●
匯入版本控制
● 建立git
● 註冊github
● 建立repository
● push
travis-ci
● 利用github帳號註冊travis-ci
● 開啓專案HelloTestThat的持續整合
觸發第一次自動建製
● 開branch : dev/travis
● 撰寫.travis.yml
● 調整環境變數
● Push + Create PR(Pull Request)
檢視travis-ci的log
Merge dev/travis
● 建立README
● 建立badget
travis-ci for Mac (OS X)
● 建立 branch: osx
● 改寫 .travis.yml
appveyor for Windows
● 撰寫appveyor.yml
● 註冊appveyor
● 打開HelloTestThat的持續整合
建立 OS X, Windows 的 badget
修正HelloTestThat的錯誤
● Push, 一次觸發三個平台的Build
Q&A

Contenu connexe

En vedette

8 31 2014 week # 1 ggs life of faith jrs powerpoint
8 31 2014 week # 1 ggs life of faith jrs powerpoint8 31 2014 week # 1 ggs life of faith jrs powerpoint
8 31 2014 week # 1 ggs life of faith jrs powerpointJose Ramos
 
Tennessee Beef Industry Council (Facebook)
Tennessee Beef Industry Council (Facebook)Tennessee Beef Industry Council (Facebook)
Tennessee Beef Industry Council (Facebook)alayatwms
 
Evaluation Q4
Evaluation Q4Evaluation Q4
Evaluation Q4Suther98
 
Stainless Steel Wall Mounted Railing System
Stainless Steel Wall Mounted Railing SystemStainless Steel Wall Mounted Railing System
Stainless Steel Wall Mounted Railing SystemParesh Vekariya
 
15 Angel Investors And Startups They Invested In.
15 Angel Investors And Startups They Invested In.15 Angel Investors And Startups They Invested In.
15 Angel Investors And Startups They Invested In.designs.codes
 
Camera shots and what makes a good photo
Camera shots and what makes a good photoCamera shots and what makes a good photo
Camera shots and what makes a good photoSuther98
 
社群對我職涯的影響
社群對我職涯的影響社群對我職涯的影響
社群對我職涯的影響Wush Wu
 
Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015Games for Health Finland
 
Операції банків в іноземній валюті
Операції банків в іноземній валютіОперації банків в іноземній валюті
Операції банків в іноземній валютіНастя Корабахина
 
Railing system with wire rope fitting
Railing system with wire rope fittingRailing system with wire rope fitting
Railing system with wire rope fittingParesh Vekariya
 
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case Kuopio
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case KuopioNopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case Kuopio
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case KuopioGames for Health Finland
 

En vedette (20)

Presentation1
Presentation1Presentation1
Presentation1
 
8 31 2014 week # 1 ggs life of faith jrs powerpoint
8 31 2014 week # 1 ggs life of faith jrs powerpoint8 31 2014 week # 1 ggs life of faith jrs powerpoint
8 31 2014 week # 1 ggs life of faith jrs powerpoint
 
Tennessee Beef Industry Council (Facebook)
Tennessee Beef Industry Council (Facebook)Tennessee Beef Industry Council (Facebook)
Tennessee Beef Industry Council (Facebook)
 
Leadership - CROSS the Street in Vietnam - UEH
Leadership - CROSS the Street in Vietnam - UEHLeadership - CROSS the Street in Vietnam - UEH
Leadership - CROSS the Street in Vietnam - UEH
 
тема 2
тема 2тема 2
тема 2
 
Evaluation Q4
Evaluation Q4Evaluation Q4
Evaluation Q4
 
Stainless Steel Wall Mounted Railing System
Stainless Steel Wall Mounted Railing SystemStainless Steel Wall Mounted Railing System
Stainless Steel Wall Mounted Railing System
 
тема 2
тема 2тема 2
тема 2
 
Risen 1
Risen 1Risen 1
Risen 1
 
powerpoint
powerpointpowerpoint
powerpoint
 
Kairu
KairuKairu
Kairu
 
15 Angel Investors And Startups They Invested In.
15 Angel Investors And Startups They Invested In.15 Angel Investors And Startups They Invested In.
15 Angel Investors And Startups They Invested In.
 
Camera shots and what makes a good photo
Camera shots and what makes a good photoCamera shots and what makes a good photo
Camera shots and what makes a good photo
 
тема 1
тема 1тема 1
тема 1
 
社群對我職涯的影響
社群對我職涯的影響社群對我職涯的影響
社群對我職涯的影響
 
Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015
 
Операції банків в іноземній валюті
Операції банків в іноземній валютіОперації банків в іноземній валюті
Операції банків в іноземній валюті
 
тема 5
тема 5тема 5
тема 5
 
Railing system with wire rope fitting
Railing system with wire rope fittingRailing system with wire rope fitting
Railing system with wire rope fitting
 
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case Kuopio
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case KuopioNopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case Kuopio
Nopeilla kokeiluilla uusia hyvinvointi- ja terveysinnovaatiota, Case Kuopio
 

Similaire à 利用免費服務建立R的持續整合環境

测试驱动的前端开发初探
测试驱动的前端开发初探测试驱动的前端开发初探
测试驱动的前端开发初探hua qiu
 
Test driven-frontend-develop
Test driven-frontend-developTest driven-frontend-develop
Test driven-frontend-developfangdeng
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1netdbncku
 
Ops as Code using Serverless
Ops as Code using Serverless Ops as Code using Serverless
Ops as Code using Serverless Rick Hwang
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)Max Lai
 
淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用Rick Hwang
 
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手Alan Tsai
 
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4Chia-Hao Tsai
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
微型團隊的 web 程式開發流程
微型團隊的 web 程式開發流程微型團隊的 web 程式開發流程
微型團隊的 web 程式開發流程Chang Mt
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發AgileCommunity
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介Cheyin L
 
Continuous Delivery Chat8
Continuous Delivery Chat8Continuous Delivery Chat8
Continuous Delivery Chat8Kai-Yang Hsieh
 
Git & git flow
Git & git flowGit & git flow
Git & git flowAmo Wu
 
2010 07-29-version control use git
2010 07-29-version control use git2010 07-29-version control use git
2010 07-29-version control use gitKang-Min Wang
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationnetdbncku
 
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
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 LibraryMu Chun Wang
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现drewz lin
 

Similaire à 利用免費服務建立R的持續整合環境 (20)

测试驱动的前端开发初探
测试驱动的前端开发初探测试驱动的前端开发初探
测试驱动的前端开发初探
 
Test driven-frontend-develop
Test driven-frontend-developTest driven-frontend-develop
Test driven-frontend-develop
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
 
Ops as Code using Serverless
Ops as Code using Serverless Ops as Code using Serverless
Ops as Code using Serverless
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
 
淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用
 
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
 
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
微型團隊的 web 程式開發流程
微型團隊的 web 程式開發流程微型團隊的 web 程式開發流程
微型團隊的 web 程式開發流程
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
 
Python 2 - 快速簡介
Python 2 - 快速簡介Python 2 - 快速簡介
Python 2 - 快速簡介
 
Using vim
Using vimUsing vim
Using vim
 
Continuous Delivery Chat8
Continuous Delivery Chat8Continuous Delivery Chat8
Continuous Delivery Chat8
 
Git & git flow
Git & git flowGit & git flow
Git & git flow
 
2010 07-29-version control use git
2010 07-29-version control use git2010 07-29-version control use git
2010 07-29-version control use git
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
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...
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现
 

Plus de Wush Wu

Predicting winning price in real time bidding
Predicting winning price in real time biddingPredicting winning price in real time bidding
Predicting winning price in real time biddingWush Wu
 
機器學習的技術債
機器學習的技術債機器學習的技術債
機器學習的技術債Wush Wu
 
R 語言上手篇
R 語言上手篇R 語言上手篇
R 語言上手篇Wush Wu
 
Predicting Winning Price in Real Time Bidding with Censored Data
Predicting Winning Price in Real Time Bidding with Censored DataPredicting Winning Price in Real Time Bidding with Censored Data
Predicting Winning Price in Real Time Bidding with Censored DataWush Wu
 
Introduction of Feature Hashing
Introduction of Feature HashingIntroduction of Feature Hashing
Introduction of Feature HashingWush Wu
 
Online advertising and large scale model fitting
Online advertising and large scale model fittingOnline advertising and large scale model fitting
Online advertising and large scale model fittingWush Wu
 
R, Git, Github, and CI
R, Git, Github, and CIR, Git, Github, and CI
R, Git, Github, and CIWush Wu
 

Plus de Wush Wu (7)

Predicting winning price in real time bidding
Predicting winning price in real time biddingPredicting winning price in real time bidding
Predicting winning price in real time bidding
 
機器學習的技術債
機器學習的技術債機器學習的技術債
機器學習的技術債
 
R 語言上手篇
R 語言上手篇R 語言上手篇
R 語言上手篇
 
Predicting Winning Price in Real Time Bidding with Censored Data
Predicting Winning Price in Real Time Bidding with Censored DataPredicting Winning Price in Real Time Bidding with Censored Data
Predicting Winning Price in Real Time Bidding with Censored Data
 
Introduction of Feature Hashing
Introduction of Feature HashingIntroduction of Feature Hashing
Introduction of Feature Hashing
 
Online advertising and large scale model fitting
Online advertising and large scale model fittingOnline advertising and large scale model fitting
Online advertising and large scale model fitting
 
R, Git, Github, and CI
R, Git, Github, and CIR, Git, Github, and CI
R, Git, Github, and CI
 

利用免費服務建立R的持續整合環境