SlideShare a Scribd company logo
Mobile Apps CI
| |
Ahmed Shady
STCian
Mobility Team|05/03/2017
Agenda
CI/CD: What/Why?
Git: Which Workflow?
Fastlane: Automation done right.
Jenkins: Automation Server.
Demo: yes, it is easy as this!
Continuous
Integration /
Delivery
Why?
● Catching problems quickly, easily, and early
● Enhancing collaboration
● Broadening test coverage
● Generating build and test statistics over time
● Saving your effort/time..
What?
The process of automating and
streamlining the
● building
● analyzing
● testing
● archiving
● publishing
of your App (life)
Git Workflows
1. Centralized Workflow
Source: https://www.atlassian.com/git/tutorials
4. Forking Workflow
2. Feature Branch Workflow
3. Gitflow Workflow
Git Workflows
1. Centralized Workflow
Source: https://www.atlassian.com/git/tutorials
4. Forking Workflow
2. Feature Branch Workflow
3. Gitflow Workflow
1. Centralized Workflow
Your team can develop projects in the exact same
way as they do with Subversion
Git Workflows
1. Centralized Workflow
Source: https://www.atlassian.com/git/tutorials
4. Forking Workflow
2. Feature Branch Workflow
3. Gitflow Workflow
2. Feature Branch Workflow
All feature development should take place in a
dedicated branch instead of the master branch.
This encapsulation makes it easy for multiple
developers to work on a particular feature without
disturbing the main codebase.
The master branch will never contain broken code
Encapsulating feature development also makes it
possible to leverage pull requests
Git Workflows
1. Centralized Workflow
Source: https://www.atlassian.com/git/tutorials
4. Forking Workflow
2. Feature Branch Workflow
3. Gitflow Workflow
The Gitflow Workflow defines a strict branching
model designed around the project release.
While somewhat more complicated than the Feature
Branch Workflow, this provides a robust framework
for managing larger projects.
Feature Branch Workflow +
It assigns very specific roles to different branches
and defines how and when they should interact
It uses individual branches for preparing, maintaining,
and recording releases.
Git Workflows
1. Centralized Workflow
Source: https://www.atlassian.com/git/tutorials
4. Forking Workflow
2. Feature Branch Workflow
3. Gitflow Workflow
Developers push to their own server-side
repositories, and only the project maintainer can push
to the official repository.
This allows the maintainer to accept commits from
any developer without giving them write access to the
official codebase.
Fastlane
● Save days of preparing app submission, uploading
screenshots and releasing the app
● Colleague on vacation and a critical bugfix needs to
be released? Don’t rely on one person (Sul… )
releasing updates
● Increase software quality and reaction time with
more frequent and smaller releases
● Ship your mobile app from any computer or server
The easiest way to automate building
and releasing your iOS and Android apps
lane :appstore do
increment_build_number
cocoapods
scan
snapshot
sigh
deliver
sh "./customScript.sh"
slack
end
Automation done right
Fastlane family
iOS
Android
Command line tool for updating
Android apps and their metadata on
the Google Play Store
Automate taking localized
screenshots of your Android app on
every device
Automatically create and
maintain iOS code signing
certificates
Because you would rather
spend your time building stuff
than fighting provisioning
The easiest way to run tests of
your iOS and Mac app
The best way to
manage your TestFlight
testers and builds from
your terminal
Building your iOS app has
never been easier
and more..
Jenkins
Jenkins is an open source automation
server with an unparalleled plugin
ecosystem to support practically every
tool as part of your delivery
pipelines
Demo time...
Life is too short to do this yourself
Thank You
Ahmed Shady

More Related Content

What's hot

Twelve factor apps
Twelve factor appsTwelve factor apps
Twelve factor apps
Alea Soluciones, S.L.
 
BDD with Behat Selenium, Sahi and Sauce
BDD with Behat Selenium, Sahi and SauceBDD with Behat Selenium, Sahi and Sauce
BDD with Behat Selenium, Sahi and Sauce
Shashikant Jagtap
 
CICD by Teerapat
CICD by TeerapatCICD by Teerapat
CICD by Teerapat
Troublemaker Khunpech
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
Sauce Labs
 
Why You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIWhy You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your API
Postman
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill Set
Tsuyoshi Ushio
 
Webrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous deliveryWebrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous delivery
Hakan ERDOGAN
 
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Kin Lane
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
Casey Lee
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic Apps
BizTalk360
 
Advanced Spring Boot with Consul
Advanced Spring Boot with ConsulAdvanced Spring Boot with Consul
Advanced Spring Boot with Consul
VMware Tanzu
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
BizTalk360
 
Continuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for SalesforceContinuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for Salesforce
Klea Kolaric
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
Rodrigo Russo
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
Sriram Hariharan
 
Versioning strategy for a complex internal API (Konstantin Yakushev)
Versioning strategy for a complex internal API (Konstantin Yakushev)Versioning strategy for a complex internal API (Konstantin Yakushev)
Versioning strategy for a complex internal API (Konstantin Yakushev)
Nordic APIs
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
Pronovix
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
VMware Tanzu
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Alea Soluciones, S.L.
 

What's hot (20)

Twelve factor apps
Twelve factor appsTwelve factor apps
Twelve factor apps
 
BDD with Behat Selenium, Sahi and Sauce
BDD with Behat Selenium, Sahi and SauceBDD with Behat Selenium, Sahi and Sauce
BDD with Behat Selenium, Sahi and Sauce
 
CICD by Teerapat
CICD by TeerapatCICD by Teerapat
CICD by Teerapat
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Why You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIWhy You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your API
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill Set
 
Webrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous deliveryWebrazzi online code: iyzico continuous delivery
Webrazzi online code: iyzico continuous delivery
 
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic Apps
 
Advanced Spring Boot with Consul
Advanced Spring Boot with ConsulAdvanced Spring Boot with Consul
Advanced Spring Boot with Consul
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
 
Continuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for SalesforceContinuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for Salesforce
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
 
Versioning strategy for a complex internal API (Konstantin Yakushev)
Versioning strategy for a complex internal API (Konstantin Yakushev)Versioning strategy for a complex internal API (Konstantin Yakushev)
Versioning strategy for a complex internal API (Konstantin Yakushev)
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 

Similar to Mobile Apps CI

03 02 - tizen app development with visual studio mobile center and team services
03 02 - tizen app development with visual studio mobile center and team services03 02 - tizen app development with visual studio mobile center and team services
03 02 - tizen app development with visual studio mobile center and team services
Alexey Shulga
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
Ifunga Ndana
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Exercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseExercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the Enterprise
Bitbar
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
IndicThreads
 
UiPath Task Capture training.pdf
UiPath Task Capture training.pdfUiPath Task Capture training.pdf
UiPath Task Capture training.pdf
Cristina Vidu
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resume
pradeesh bv
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
Moataz Nabil
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
Microsoft 365 Developer
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Xebia IT Architects
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
André Agostinho
 
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetupBitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
Viktor Benei
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
samuel segal
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
Cong Nguyen
 
Azure CICD - Day1.pptx
Azure CICD - Day1.pptxAzure CICD - Day1.pptx
Azure CICD - Day1.pptx
UiPathCommunity
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive Web
Perfecto by Perforce
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
Rob Jahn
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
Perfecto by Perforce
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 

Similar to Mobile Apps CI (20)

03 02 - tizen app development with visual studio mobile center and team services
03 02 - tizen app development with visual studio mobile center and team services03 02 - tizen app development with visual studio mobile center and team services
03 02 - tizen app development with visual studio mobile center and team services
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Exercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseExercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the Enterprise
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
UiPath Task Capture training.pdf
UiPath Task Capture training.pdfUiPath Task Capture training.pdf
UiPath Task Capture training.pdf
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resume
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetupBitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
Bitrise: How to make iOS builds faster - Tokyo 2019 March - Eureka meetup
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
Azure CICD - Day1.pptx
Azure CICD - Day1.pptxAzure CICD - Day1.pptx
Azure CICD - Day1.pptx
 
Advanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive WebAdvanced Strategies for Testing Responsive Web
Advanced Strategies for Testing Responsive Web
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 

Mobile Apps CI

  • 1. Mobile Apps CI | | Ahmed Shady STCian Mobility Team|05/03/2017
  • 2. Agenda CI/CD: What/Why? Git: Which Workflow? Fastlane: Automation done right. Jenkins: Automation Server. Demo: yes, it is easy as this!
  • 3. Continuous Integration / Delivery Why? ● Catching problems quickly, easily, and early ● Enhancing collaboration ● Broadening test coverage ● Generating build and test statistics over time ● Saving your effort/time.. What? The process of automating and streamlining the ● building ● analyzing ● testing ● archiving ● publishing of your App (life)
  • 4. Git Workflows 1. Centralized Workflow Source: https://www.atlassian.com/git/tutorials 4. Forking Workflow 2. Feature Branch Workflow 3. Gitflow Workflow
  • 5. Git Workflows 1. Centralized Workflow Source: https://www.atlassian.com/git/tutorials 4. Forking Workflow 2. Feature Branch Workflow 3. Gitflow Workflow 1. Centralized Workflow Your team can develop projects in the exact same way as they do with Subversion
  • 6. Git Workflows 1. Centralized Workflow Source: https://www.atlassian.com/git/tutorials 4. Forking Workflow 2. Feature Branch Workflow 3. Gitflow Workflow 2. Feature Branch Workflow All feature development should take place in a dedicated branch instead of the master branch. This encapsulation makes it easy for multiple developers to work on a particular feature without disturbing the main codebase. The master branch will never contain broken code Encapsulating feature development also makes it possible to leverage pull requests
  • 7. Git Workflows 1. Centralized Workflow Source: https://www.atlassian.com/git/tutorials 4. Forking Workflow 2. Feature Branch Workflow 3. Gitflow Workflow The Gitflow Workflow defines a strict branching model designed around the project release. While somewhat more complicated than the Feature Branch Workflow, this provides a robust framework for managing larger projects. Feature Branch Workflow + It assigns very specific roles to different branches and defines how and when they should interact It uses individual branches for preparing, maintaining, and recording releases.
  • 8. Git Workflows 1. Centralized Workflow Source: https://www.atlassian.com/git/tutorials 4. Forking Workflow 2. Feature Branch Workflow 3. Gitflow Workflow Developers push to their own server-side repositories, and only the project maintainer can push to the official repository. This allows the maintainer to accept commits from any developer without giving them write access to the official codebase.
  • 9. Fastlane ● Save days of preparing app submission, uploading screenshots and releasing the app ● Colleague on vacation and a critical bugfix needs to be released? Don’t rely on one person (Sul… ) releasing updates ● Increase software quality and reaction time with more frequent and smaller releases ● Ship your mobile app from any computer or server The easiest way to automate building and releasing your iOS and Android apps lane :appstore do increment_build_number cocoapods scan snapshot sigh deliver sh "./customScript.sh" slack end Automation done right
  • 10. Fastlane family iOS Android Command line tool for updating Android apps and their metadata on the Google Play Store Automate taking localized screenshots of your Android app on every device Automatically create and maintain iOS code signing certificates Because you would rather spend your time building stuff than fighting provisioning The easiest way to run tests of your iOS and Mac app The best way to manage your TestFlight testers and builds from your terminal Building your iOS app has never been easier and more..
  • 11. Jenkins Jenkins is an open source automation server with an unparalleled plugin ecosystem to support practically every tool as part of your delivery pipelines
  • 12. Demo time... Life is too short to do this yourself