paweł kowalczyk (codete) - continuous integration for ios
TRANSCRIPT
Con$nuous Integra$on for iOSPaweł Kowalczyk
© Paweł Kowalczyk, Codete 2016
Agenda• The benefits of Con.nuous Integra.on
• Possible solu.ons
• Recommenda.on
© Paweł Kowalczyk, Codete 2016
Agenda• The benefits of Con-nuous Integra-on
• Possible solu+ons
• Recommenda+on
© Paweł Kowalczyk, Codete 2016
What is Con+nuous Integra+on?
© Paweł Kowalczyk, Codete 2016
What is Con+nuous Integra+on?Con$nuous Integra$on is a set of principles and prac$ces that help
to automate many $me consuming tasks associated with the process of so9ware development, such as delivery, tes$ng, and
quality control.
© Paweł Kowalczyk, Codete 2016
Build proceess automa0on
© Paweł Kowalczyk, Codete 2016
Build process automa0onBenefits
• avoid last-minute chaos at release dates
• allow team members to easily prepare builds
• single place for Apple cer:ficates
© Paweł Kowalczyk, Codete 2016
Test automa*on
© Paweł Kowalczyk, Codete 2016
Test automa*onBenefits
• enforced discipline of frequent tes1ng (periodically or a6er push)
• easy access to code coverage metrics
• automa1c repor1ng of test results
© Paweł Kowalczyk, Codete 2016
Code quality inspec1on
© Paweł Kowalczyk, Codete 2016
Code quality inspec1onBenefits
• easy introduc/on of coding rules
• automated code analysis
• automated search for poten/al bugs and code duplica/ons
© Paweł Kowalczyk, Codete 2016
Examples of use
© Paweł Kowalczyk, Codete 2016
Examples of use
© Paweł Kowalczyk, Codete 2016
Agenda• The benefits of Con.nuous Integra.on
• Possible solu*ons
• Recommenda.on
© Paweł Kowalczyk, Codete 2016
Jenkins
© Paweł Kowalczyk, Codete 2016
JenkinsAn open source,
cross-pla/orm, con1nuous integra1on tool.
© Paweł Kowalczyk, Codete 2016
Pros
• universal pla-orm: iOS, Android, ...
• customizable and expandable with addi>onal tools, i.e. Fastlane, Buildasaur, Fabric, Sonarqube, Slack...
© Paweł Kowalczyk, Codete 2016
Cons
• very bad UX
• difficult and 3me-consuming configura3on
• high entry-barrier for team members
© Paweł Kowalczyk, Codete 2016
Xcode Server
© Paweł Kowalczyk, Codete 2016
Xcode ServerApple's con+nuous integra+on system for iOS and OS X which
enables automa+ng sta+c analysis of so<ware, unit
tes+ng, and build archiving.
© Paweł Kowalczyk, Codete 2016
Pros
• easy integra,on with iOS projects - twin pla7orm
• direct configura,on from Xcode
• customizable and expandable with addi,onal tools, i.e. Fastlane, Buildasaur, Fabric, Sonarqube, Slack...
© Paweł Kowalczyk, Codete 2016
Cons
• lack of learning materials
• version compa3blity issues
• no support for interchangeable environments
© Paweł Kowalczyk, Codete 2016
PaaS
© Paweł Kowalczyk, Codete 2016
PaaSWhat is PaaS?
© Paweł Kowalczyk, Codete 2016
PaaSPla$orm as a Service
© Paweł Kowalczyk, Codete 2016
PaaSA category of cloud compu1ng
services that provides a pla7orm allowing customers to develop, run, and manage
applica1ons without the complexity of building and
maintaining the infrastructure.
© Paweł Kowalczyk, Codete 2016
PaaSPros
• make apps, not infrastructure!
• easy configura6on
• outsource the infrastructure maintenance to 3rd party pla;orm
• customizable and expandable with addi6onal tools
© Paweł Kowalczyk, Codete 2016
PaaSCons
• security relies on 3rd party pla2orm
• allow 3rd party to retrieve source code
© Paweł Kowalczyk, Codete 2016
Buddybuild
© Paweł Kowalczyk, Codete 2016
BuddybuildBuddybuild )es together Con)nuous Integra)on, Con)nuous Delivery and
an Itera)ve Feedback Solu)on into a single, seamless
pla>orm.
© Paweł Kowalczyk, Codete 2016
BuddybuildPros
• integra)on with GitHub and Bitbucket
• take a screenshot to start sending feedback
• built-in crash repor)ng
• interchangeable environments
© Paweł Kowalczyk, Codete 2016
BuddybuildCons
• no transparent and customizable pipelines
• no scrip3ng support
• s3ll growing list of addi3onal tools
© Paweł Kowalczyk, Codete 2016
Bitrise
© Paweł Kowalczyk, Codete 2016
BitriseCon$nuous Integra$on and
Con$nuous Delivery (CI/CD) Pla8orm as a Service (PaaS) with a main focus on mobile
app development (iOS, Android).
© Paweł Kowalczyk, Codete 2016
BitrisePros
• great support!
• integra/on with GitHub and Bitbucket
• easy & quick configura/on
• transparent and customizable pipelines
© Paweł Kowalczyk, Codete 2016
BitrisePros
• one-click building
• interchangeable environments
• scrip7ng support
• customizable and expandable with addi7onal tools, i.e. Fastlane, Fabric, Slack, Calabash...
© Paweł Kowalczyk, Codete 2016
BitriseCons
• payment fee (~ $50/month) for:∞ team members∞ builds / month
© Paweł Kowalczyk, Codete 2016
Agenda• The benefits of Con.nuous Integra.on
• Possible solu.ons
• Recommenda)on
© Paweł Kowalczyk, Codete 2016
Recommenda)on
© Paweł Kowalczyk, Codete 2016
Recommenda)onPaaS !
© Paweł Kowalczyk, Codete 2016
Recommenda)onMake apps, not infrastructure !
© Paweł Kowalczyk, Codete 2016
Recommenda)onBitrise !
© Paweł Kowalczyk, Codete 2016
Thank you for your a,en.onDo you have any ques-ons?
© Paweł Kowalczyk, Codete 2016