SlideShare a Scribd company logo
R, Git, Github, and 
CI 
TTaaiiwwaann RR UUsseerr GGrroouupp 
WWuusshh WWuu 
22001144--0099--2200
DSC 2014 
● 2014 is the first year of DSC(Data Science 
Conference) in Taiwan. 
● We (Taiwan R User Group) organizes the Tutorial 
Program of R in DSC. 
● There were more than 100 students joined us during 
DSC 2014. 
● The averaged rating is more than 4.2 (1 ~ 5).
Goal of Tutorial 
● Systematically introduce the analysis step with R 
– Basic 
– Data Manipulation(Extract, Transform and Loading) 
– Analysis 
– Visualization 
● Based on the latest tools of R 
● Reproducibility of examples 
● Integration of materials 
● *Well designed exercises
About Me 
● PhD Candidate in NTU EE 
● Current research field: 
– Online Advertisement 
– Large Scale Predictive Modeling 
● Organizer of Taiwan R User Group 
● Organizer of Tutorial Program in DSC 2014
Outline 
● Share the experience of organizing tutorial program 
with 16 people with: 
– Git, my favorite tool of version control 
– Github, a platform of cooperation 
– Jenkins, a system of automation 
● I will show how to cooperate these tools with R 
package
Why R Package 
● There are many dependency for examples and exercises 
● R package is the recommended way to share your code 
● Wrap all materials in one R Package: DSC2014Tutorial so the 
students only need to download once. 
– All slides are included. 
– Customized R API 
– All data 
– *Installation of depended packages 
– Solving issue of portability(Windows, Mac, and Ubuntu) 
● The package is easily managed by git and released on github
The structure of R package 
Dependencies 
● DESCRIPTION 
Package: DSC2014Tutorial 
Type: Package 
Title: Materials of Tutorial Program on 
DSC 2014 
Version: 1.2 
Date: 2014-08-03 
Author: Taiwan R User Group 
Maintainer: Wush Wu <wush978@gmail.com> 
Description: This package contains the 
required materials of R Tutorial 
DSC2014 
License: GPL (>= 3) 
Depends: 
R (>= 3.1.0) 
Imports: 
tools, 
...
The structure of R package 
Data 
● data 
data(salary, package = 'DSC2014Tutorial')
The structure of R package 
cross-platform 
● configure.ac / configure
The structure of R package 
slides and external source 
system.file('Basic', package = 
'DSC2014Tutorial')
Git, Version Control 
● Some speakers are new to git 
● We used the following feature: 
– Self version control: add, commit 
– Repository: remote, push, pull, and merge 
– Cooperation: submodul 
● Git plays the fundamental role in our workflow
Why Git? 
● Speed is king 
● Local commits rock 
● Github 
●My favorite
Github 
● Most popular platform for managing git 
repository 
● Provide many convenient features 
– Account of Organization 
– Designed for cooperation 
– Simple integration with many popular CI tools 
– Static website (Sufficient for R Repository)
Release R Package on Github 
● R is released as: 
– a git repository 
– a R repository
Github and R Repository 
● How to establish a R repository on github: 
1.Create a new git repository named 『R』 
2.Add the content of R repository into git repository in 
branch gghh--ppaaggeess 
3. Push and wait 
4. The R Repository is located at http://<account>.github.io/R 
● The user could install the binary of DSC2014Tutorial 
directly via 
install.packages(DSC2014Tutorial, repos = 
"http://TaiwanRUserGroup.github.io/R")
Cooperation 
● I cannot build all slides of tutorial 
– There are 7 slides built from different groups of speakers 
● Each slides should be managed by its author 
– Each slides is a standalone git repository 
– No branching here because not all speakers are familiear with 
git 
● Use gitsubmodule to embed these slides into R Package 
● We need modern work flow to control the quality
Workflow 1 
1.Each speakers creates the slides and initialize the git 
repository 
2.Speakers commit their changes to git repository 
3.Open the pull request 
4.Slide review and test on different platform 
5.Merge changes to DSC2014Tutorial
Commits
Pull Requests
Review
Merge
Slide Review 
● Each speakers review the slides of each others 
● The comment are posted to Issue of the github pages 
● The speaker should resolve the posted issue
Issues
Challenge 
● After the first rehearsal on Taiwan R User Group, 
we notice a serious encoding issue 
– Default chinese encoding is different
Challenge 
● We could resolve the specific issue 
● The slides are evolving, some bugs might occur 
● We need to test the slides, but there are 7 slides and 
we want to test them on Windows, ubuntu and mac*
Why CI 
● CI automates the following things 
– Testing 
– Integration 
– Deployment 
● CI makes me a better life 
● CI also introduces some problems. Let's discuss it 
later.
Test R Package 
● R CMD check --no-codoc --no-manual --no-vignettes 
–no-build-vignettes
Deploy R Package 
● git push 
● Commit to R Repository 
tools::write_PACKAGES( type = c("source", 
"mac.binary", "win.binary") )
R and CI 
travis-ci.org
Existed work for R and Travis-ci 
● https://github.com/craigcitro/r-travis/wiki
travis.yml 
language: c 
script: ./travis-tool.sh run_tests 
after_failure: 
- ./travis-tool.sh dump_logs 
before_install: 
- curl -OL http://raw.github.com/craigcitro/r-travis/ 
master/scripts/travis-tool.sh 
- chmod 755 ./travis-tool.sh 
- ./travis-tool.sh bootstrap 
- ./travis-tool.sh r_binary_install XML Rcpp knitr 
brew RUnit inline highlight formatR highr markdown rgl 
install: 
- ./travis-tool.sh install_deps 
- ./travis-tool.sh install_github hadley/testthat 
notifications: 
email: 
on_success: change 
on_failure: change 
env:
R and CI 
jenkins
Setup Jenkins 
● Github Plugin 
– http://sanketdangi.com/post/62740311628/integrate-jenkins- 
github-trigger-build-process 
● Github Pull Request Builder 
– http://www.kabisa.nl/building-github-pull-requests-with-jenkins/ 
● Firewall (open to 192.30.252.0/22)
Auto Testing
Result
Discussion 
● No Error v.s. No Warnings 
● Existed Problems: 
– Memory issue 
– Unknown Bugs 
– Unclear Message
Summary 
● Tutorial and R Package 
● Git and R Package 
● Github and R Package 
● CI and R Package
Q&A
Thanks for your listening

More Related Content

What's hot

Life-cycle is too short not to use ElasTest
Life-cycle is too short not to use ElasTestLife-cycle is too short not to use ElasTest
Life-cycle is too short not to use ElasTest
ElasTest Project
 
Building and Deploying containerized Python Apps in the Cloud
Building and Deploying containerized Python Apps in the CloudBuilding and Deploying containerized Python Apps in the Cloud
Building and Deploying containerized Python Apps in the Cloud
Rodolfo Carvalho
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testing
Linaro
 
Paris.py
Paris.pyParis.py
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
Rajith Bhanuka Mahanama
 
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
Organization for the Promotion, Protection and Progress of Frogans Technology
 
Python deployments on OpenShift 3
Python deployments on OpenShift 3Python deployments on OpenShift 3
Python deployments on OpenShift 3
Rodolfo Carvalho
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usageSFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
Linaro
 
Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)
Fred Lin
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
All Things Open
 
Influxdays Opentracing
Influxdays OpentracingInfluxdays Opentracing
Influxdays Opentracing
InfluxData
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
ColCh
 
Optimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest ApiOptimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest Api
Iman Syahputra Situmorang
 
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Anne Nicolas
 
Uop ntc 324 entire course new
Uop ntc 324 entire course newUop ntc 324 entire course new
Uop ntc 324 entire course new
mailemail
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
Filipa Lacerda
 
Angular 4 Training | Angular Js training in Hyderabad
Angular 4 Training | Angular Js training in HyderabadAngular 4 Training | Angular Js training in Hyderabad
Angular 4 Training | Angular Js training in Hyderabad
N Benchmark IT Solutions
 
This Week in Neo4j - 6th October 2018
This Week in Neo4j - 6th October 2018This Week in Neo4j - 6th October 2018
This Week in Neo4j - 6th October 2018
Neo4j
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
Ganesh Raju
 

What's hot (20)

Life-cycle is too short not to use ElasTest
Life-cycle is too short not to use ElasTestLife-cycle is too short not to use ElasTest
Life-cycle is too short not to use ElasTest
 
Building and Deploying containerized Python Apps in the Cloud
Building and Deploying containerized Python Apps in the CloudBuilding and Deploying containerized Python Apps in the Cloud
Building and Deploying containerized Python Apps in the Cloud
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testing
 
Paris.py
Paris.pyParis.py
Paris.py
 
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
 
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
FTC6 Jean-Emmanuel Rodriguez welcome Frogans Technology 6 2016/02/16
 
Python deployments on OpenShift 3
Python deployments on OpenShift 3Python deployments on OpenShift 3
Python deployments on OpenShift 3
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usageSFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
 
Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Influxdays Opentracing
Influxdays OpentracingInfluxdays Opentracing
Influxdays Opentracing
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Optimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest ApiOptimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest Api
 
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
 
Uop ntc 324 entire course new
Uop ntc 324 entire course newUop ntc 324 entire course new
Uop ntc 324 entire course new
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
Angular 4 Training | Angular Js training in Hyderabad
Angular 4 Training | Angular Js training in HyderabadAngular 4 Training | Angular Js training in Hyderabad
Angular 4 Training | Angular Js training in Hyderabad
 
This Week in Neo4j - 6th October 2018
This Week in Neo4j - 6th October 2018This Week in Neo4j - 6th October 2018
This Week in Neo4j - 6th October 2018
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 

Viewers also liked

社群對我職涯的影響
社群對我職涯的影響社群對我職涯的影響
社群對我職涯的影響
Wush Wu
 
Ict in education
Ict in educationIct in education
Kairu
KairuKairu
Kairu
sabicksha
 
Making greek christmas chocolate treats for our friends
Making greek christmas chocolate treats for our friendsMaking greek christmas chocolate treats for our friends
Making greek christmas chocolate treats for our friends
Pefkoula Stagia
 
20150923 mindtrek korhonen taltioni
20150923 mindtrek korhonen taltioni20150923 mindtrek korhonen taltioni
20150923 mindtrek korhonen taltioni
Games for Health Finland
 
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
WomenAntiCoup
 
Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015
Games for Health Finland
 
Week 1 risen the jesus you never knew 515pm media
Week 1 risen the jesus you never knew 515pm mediaWeek 1 risen the jesus you never knew 515pm media
Week 1 risen the jesus you never knew 515pm media
Jose Ramos
 
Essential Tips For Building An Ecommerce Website
Essential Tips For Building An Ecommerce Website Essential Tips For Building An Ecommerce Website
Essential Tips For Building An Ecommerce Website
designs.codes
 
March 27 2016 HIS LAMBS
March 27 2016 HIS LAMBSMarch 27 2016 HIS LAMBS
March 27 2016 HIS LAMBS
Jose Ramos
 
The 2nd Games for Health Finland event - Koopee Hiltunen
The 2nd Games for Health Finland event - Koopee HiltunenThe 2nd Games for Health Finland event - Koopee Hiltunen
The 2nd Games for Health Finland event - Koopee Hiltunen
Games for Health Finland
 
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
WomenAntiCoup
 
Центральний банк в банківській системі України
Центральний банк в банківській системі УкраїниЦентральний банк в банківській системі України
Центральний банк в банківській системі України
Настя Корабахина
 
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكريملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
WomenAntiCoup
 
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
Games for Health Finland
 
Rabaa Massacre | 2 years on (English report)
Rabaa Massacre | 2 years on (English report)Rabaa Massacre | 2 years on (English report)
Rabaa Massacre | 2 years on (English report)
WomenAntiCoup
 
Risen 1
Risen 1Risen 1
Risen 1
Jose Ramos
 

Viewers also liked (20)

社群對我職涯的影響
社群對我職涯的影響社群對我職涯的影響
社群對我職涯的影響
 
Ict in education
Ict in educationIct in education
Ict in education
 
тема 8
тема 8тема 8
тема 8
 
Kairu
KairuKairu
Kairu
 
Making greek christmas chocolate treats for our friends
Making greek christmas chocolate treats for our friendsMaking greek christmas chocolate treats for our friends
Making greek christmas chocolate treats for our friends
 
20150923 mindtrek korhonen taltioni
20150923 mindtrek korhonen taltioni20150923 mindtrek korhonen taltioni
20150923 mindtrek korhonen taltioni
 
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
الإهمال الطبي والقتل البطئ والإعدام ..واقع نساء مصر في سجون الانقلاب !
 
Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015Kuopion ideaklinikka tavoitetila hankinnalle 012015
Kuopion ideaklinikka tavoitetila hankinnalle 012015
 
Week 1 risen the jesus you never knew 515pm media
Week 1 risen the jesus you never knew 515pm mediaWeek 1 risen the jesus you never knew 515pm media
Week 1 risen the jesus you never knew 515pm media
 
Essential Tips For Building An Ecommerce Website
Essential Tips For Building An Ecommerce Website Essential Tips For Building An Ecommerce Website
Essential Tips For Building An Ecommerce Website
 
March 27 2016 HIS LAMBS
March 27 2016 HIS LAMBSMarch 27 2016 HIS LAMBS
March 27 2016 HIS LAMBS
 
The 2nd Games for Health Finland event - Koopee Hiltunen
The 2nd Games for Health Finland event - Koopee HiltunenThe 2nd Games for Health Finland event - Koopee Hiltunen
The 2nd Games for Health Finland event - Koopee Hiltunen
 
тема 5
тема 5тема 5
тема 5
 
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
تقريريرصدالانتهاكات بحق المرأة - في الفترة من3يوليو2013حتي نوفمبر2015
 
Центральний банк в банківській системі України
Центральний банк в банківській системі УкраїниЦентральний банк в банківській системі України
Центральний банк в банківській системі України
 
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكريملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
ملخص تقرير نساء ضد الانقلاب - عامين علي الانقلاب العسكري
 
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
 
Rabaa Massacre | 2 years on (English report)
Rabaa Massacre | 2 years on (English report)Rabaa Massacre | 2 years on (English report)
Rabaa Massacre | 2 years on (English report)
 
тема 1
тема 1тема 1
тема 1
 
Risen 1
Risen 1Risen 1
Risen 1
 

Similar to R, Git, Github, and CI

Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
Chandan Kumar
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
Chandan Kumar
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Roberto Pérez Alcolea
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
GlobalLogic Ukraine
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
GR8Conf
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
Diego Zuluaga
 
RPM Factory for RDO
RPM Factory for RDORPM Factory for RDO
RPM Factory for RDO
Frédéric Lepied
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
Opsta
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
aspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
All Things Open
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Tools
rjsmelo
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Ann Lam
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Ann Lam
 
Hong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8thHong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8th
Wong Hoi Sing Edison
 
R Programming Overview
R Programming Overview R Programming Overview
R Programming Overview
dlamb3244
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
Dariusz Łuksza
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
Solano Labs
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
MarcinStachniuk
 

Similar to R, Git, Github, and CI (20)

Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
 
RPM Factory for RDO
RPM Factory for RDORPM Factory for RDO
RPM Factory for RDO
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Tools
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Hong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8thHong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8th
 
R Programming Overview
R Programming Overview R Programming Overview
R Programming Overview
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 

More from 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 bidding
Wush Wu
 
機器學習的技術債
機器學習的技術債機器學習的技術債
機器學習的技術債
Wush Wu
 
R 語言上手篇
R 語言上手篇R 語言上手篇
R 語言上手篇
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 Data
Wush Wu
 
Introduction of Feature Hashing
Introduction of Feature HashingIntroduction of Feature Hashing
Introduction of Feature Hashing
Wush 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 fitting
Wush Wu
 

More from 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 語言上手篇
 
利用免費服務建立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
 

Recently uploaded

KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
HODECEDSIET
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 

Recently uploaded (20)

KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 

R, Git, Github, and CI

  • 1. R, Git, Github, and CI TTaaiiwwaann RR UUsseerr GGrroouupp WWuusshh WWuu 22001144--0099--2200
  • 2. DSC 2014 ● 2014 is the first year of DSC(Data Science Conference) in Taiwan. ● We (Taiwan R User Group) organizes the Tutorial Program of R in DSC. ● There were more than 100 students joined us during DSC 2014. ● The averaged rating is more than 4.2 (1 ~ 5).
  • 3. Goal of Tutorial ● Systematically introduce the analysis step with R – Basic – Data Manipulation(Extract, Transform and Loading) – Analysis – Visualization ● Based on the latest tools of R ● Reproducibility of examples ● Integration of materials ● *Well designed exercises
  • 4. About Me ● PhD Candidate in NTU EE ● Current research field: – Online Advertisement – Large Scale Predictive Modeling ● Organizer of Taiwan R User Group ● Organizer of Tutorial Program in DSC 2014
  • 5. Outline ● Share the experience of organizing tutorial program with 16 people with: – Git, my favorite tool of version control – Github, a platform of cooperation – Jenkins, a system of automation ● I will show how to cooperate these tools with R package
  • 6. Why R Package ● There are many dependency for examples and exercises ● R package is the recommended way to share your code ● Wrap all materials in one R Package: DSC2014Tutorial so the students only need to download once. – All slides are included. – Customized R API – All data – *Installation of depended packages – Solving issue of portability(Windows, Mac, and Ubuntu) ● The package is easily managed by git and released on github
  • 7. The structure of R package Dependencies ● DESCRIPTION Package: DSC2014Tutorial Type: Package Title: Materials of Tutorial Program on DSC 2014 Version: 1.2 Date: 2014-08-03 Author: Taiwan R User Group Maintainer: Wush Wu <wush978@gmail.com> Description: This package contains the required materials of R Tutorial DSC2014 License: GPL (>= 3) Depends: R (>= 3.1.0) Imports: tools, ...
  • 8. The structure of R package Data ● data data(salary, package = 'DSC2014Tutorial')
  • 9. The structure of R package cross-platform ● configure.ac / configure
  • 10. The structure of R package slides and external source system.file('Basic', package = 'DSC2014Tutorial')
  • 11. Git, Version Control ● Some speakers are new to git ● We used the following feature: – Self version control: add, commit – Repository: remote, push, pull, and merge – Cooperation: submodul ● Git plays the fundamental role in our workflow
  • 12. Why Git? ● Speed is king ● Local commits rock ● Github ●My favorite
  • 13. Github ● Most popular platform for managing git repository ● Provide many convenient features – Account of Organization – Designed for cooperation – Simple integration with many popular CI tools – Static website (Sufficient for R Repository)
  • 14. Release R Package on Github ● R is released as: – a git repository – a R repository
  • 15. Github and R Repository ● How to establish a R repository on github: 1.Create a new git repository named 『R』 2.Add the content of R repository into git repository in branch gghh--ppaaggeess 3. Push and wait 4. The R Repository is located at http://<account>.github.io/R ● The user could install the binary of DSC2014Tutorial directly via install.packages(DSC2014Tutorial, repos = "http://TaiwanRUserGroup.github.io/R")
  • 16. Cooperation ● I cannot build all slides of tutorial – There are 7 slides built from different groups of speakers ● Each slides should be managed by its author – Each slides is a standalone git repository – No branching here because not all speakers are familiear with git ● Use gitsubmodule to embed these slides into R Package ● We need modern work flow to control the quality
  • 17. Workflow 1 1.Each speakers creates the slides and initialize the git repository 2.Speakers commit their changes to git repository 3.Open the pull request 4.Slide review and test on different platform 5.Merge changes to DSC2014Tutorial
  • 21. Merge
  • 22. Slide Review ● Each speakers review the slides of each others ● The comment are posted to Issue of the github pages ● The speaker should resolve the posted issue
  • 24. Challenge ● After the first rehearsal on Taiwan R User Group, we notice a serious encoding issue – Default chinese encoding is different
  • 25. Challenge ● We could resolve the specific issue ● The slides are evolving, some bugs might occur ● We need to test the slides, but there are 7 slides and we want to test them on Windows, ubuntu and mac*
  • 26. Why CI ● CI automates the following things – Testing – Integration – Deployment ● CI makes me a better life ● CI also introduces some problems. Let's discuss it later.
  • 27. Test R Package ● R CMD check --no-codoc --no-manual --no-vignettes –no-build-vignettes
  • 28. Deploy R Package ● git push ● Commit to R Repository tools::write_PACKAGES( type = c("source", "mac.binary", "win.binary") )
  • 29. R and CI travis-ci.org
  • 30. Existed work for R and Travis-ci ● https://github.com/craigcitro/r-travis/wiki
  • 31. travis.yml language: c script: ./travis-tool.sh run_tests after_failure: - ./travis-tool.sh dump_logs before_install: - curl -OL http://raw.github.com/craigcitro/r-travis/ master/scripts/travis-tool.sh - chmod 755 ./travis-tool.sh - ./travis-tool.sh bootstrap - ./travis-tool.sh r_binary_install XML Rcpp knitr brew RUnit inline highlight formatR highr markdown rgl install: - ./travis-tool.sh install_deps - ./travis-tool.sh install_github hadley/testthat notifications: email: on_success: change on_failure: change env:
  • 32. R and CI jenkins
  • 33. Setup Jenkins ● Github Plugin – http://sanketdangi.com/post/62740311628/integrate-jenkins- github-trigger-build-process ● Github Pull Request Builder – http://www.kabisa.nl/building-github-pull-requests-with-jenkins/ ● Firewall (open to 192.30.252.0/22)
  • 36. Discussion ● No Error v.s. No Warnings ● Existed Problems: – Memory issue – Unknown Bugs – Unclear Message
  • 37. Summary ● Tutorial and R Package ● Git and R Package ● Github and R Package ● CI and R Package
  • 38. Q&A
  • 39. Thanks for your listening