SlideShare une entreprise Scribd logo
1  sur  35
@AndroidDevsBsAs
Speaker: @JavierMarsicano
Host: Intive
Integrando y entregando apk con calidad a mansalva
● State of the art: CI /CD
○ Motivation
○ Configuration Management
○ CI / CD
○ Tools
○ Main features for Android projects
● Bitrise
○ Workflows
○ Steps
○ Gradle (Compile - Run tests)
○ Triggers
○ Webooks
● Live Sample
○ Setup
○ Triggering unit tests check
○ Builds
○ Tips & tricks / Lessons learned
● Further work
Agenda
Bio
CMMI - Software Engineering Institute
Configuration Management:
Coordinate, approve and implement
changes to build and maintain soft systems
CMMI - Basic support process areas
Process area that supports all process
areas by establishing and maintaining
the integrity of work products.
Completeness, correctness, and consistency of items.
➢Revise the status and history of
each configuration item as
necessary.
➢Review the structure and integrity of
items in the configuration
management system.
CMMI - Engineering process areas
➢ Generating an integration strategy
➢ Integrating product components
➢ Delivering the product to the customer
Continuous Integration
Continuous Integration
Tools
Jenkins
Bitrise 101
Recap
CDCI
Workflows - Steps
deploy
release
unit_tests_check
Workflows - Pull Request status
Workflows - Branch status
Workflows - Steps
Triggers
Triggers
Triggers
Webhooks
Webhooks
Bitrise in the wild
Setup
Triggering unit tests
Triggering builds & deploy
Tips & tricks
Lessons learned
Plans
To be continued...
➢ Advanced Bitrise from zero to hero
➢ Code coverage
➢ Lint / Spotless
➢ SonarQube
➢ Automated UI tests with Espresso / Appium
➢ Optimizing Gradle
➢ Google Play Store
➢ Mastering Configuration Management
TL;DR
Do wonderful things
Don’t wait wonderful things to happen
Si el hacha pierde su filo, y no se vuelve a afilar,
hay que golpear con más fuerza.
El éxito radica en la acción sabia y bien ejecutada.
(Eclesiastes 10.10)
THANK YOU!
@JavierMarsicano

Contenu connexe

Tendances

QA Fest 2019. Евгений Рудев. QA 3.0. New generation
QA Fest 2019. Евгений Рудев. QA 3.0. New generationQA Fest 2019. Евгений Рудев. QA 3.0. New generation
QA Fest 2019. Евгений Рудев. QA 3.0. New generationQAFest
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Petko Mikhailov
 
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...Geovanne Bertonha
 
Regis Torres Designer Developer V9
Regis Torres Designer Developer  V9Regis Torres Designer Developer  V9
Regis Torres Designer Developer V9Regis Torres
 
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...Nuxeo
 

Tendances (11)

ResumeUmesh
ResumeUmeshResumeUmesh
ResumeUmesh
 
QA Fest 2019. Евгений Рудев. QA 3.0. New generation
QA Fest 2019. Евгений Рудев. QA 3.0. New generationQA Fest 2019. Евгений Рудев. QA 3.0. New generation
QA Fest 2019. Евгений Рудев. QA 3.0. New generation
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
 
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...
Devops Days Tokyo 2019 -- The day that I deployed an app in the elevator - De...
 
Resume
Resume Resume
Resume
 
ShalmaliPadgaokar_Resume_ea
ShalmaliPadgaokar_Resume_eaShalmaliPadgaokar_Resume_ea
ShalmaliPadgaokar_Resume_ea
 
Arcburo - architectural outsourcing
Arcburo - architectural outsourcingArcburo - architectural outsourcing
Arcburo - architectural outsourcing
 
Visio p&id process designer introduction
Visio p&id process designer   introductionVisio p&id process designer   introduction
Visio p&id process designer introduction
 
Ritesh_r1
Ritesh_r1Ritesh_r1
Ritesh_r1
 
Regis Torres Designer Developer V9
Regis Torres Designer Developer  V9Regis Torres Designer Developer  V9
Regis Torres Designer Developer V9
 
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
 

Similaire à Continuous Integration & Delivery for Mobile apps development

Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Atlassian
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genovaicelands
 
SE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementSE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementAmr E. Mohamed
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An OverviewAnant Corporation
 
Configuration Management and Deployment
Configuration Management and DeploymentConfiguration Management and Deployment
Configuration Management and DeploymentSomnathMore3
 
ResumeSagli_Nov14
ResumeSagli_Nov14ResumeSagli_Nov14
ResumeSagli_Nov14Jerry Sagli
 
CoreyCPayneOctober2016
CoreyCPayneOctober2016CoreyCPayneOctober2016
CoreyCPayneOctober2016Corey Payne
 
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 2013Moataz Nabil
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)Amr E. Mohamed
 
Components of CI/CD in DevOps
Components of CI/CD in DevOpsComponents of CI/CD in DevOps
Components of CI/CD in DevOpssunil173422
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016w2fong
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Metrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryMetrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryAndrew Phillips
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Applitools
 

Similaire à Continuous Integration & Delivery for Mobile apps development (20)

Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
 
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - GenovaMes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
Mes SW Factory in Siemens AS MES - 2014.05.17 - mini Italian Agile Day - Genova
 
SE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementSE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration Management
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
 
Configuration Management and Deployment
Configuration Management and DeploymentConfiguration Management and Deployment
Configuration Management and Deployment
 
ResumeSagli_Nov14
ResumeSagli_Nov14ResumeSagli_Nov14
ResumeSagli_Nov14
 
CoreyCPayneOctober2016
CoreyCPayneOctober2016CoreyCPayneOctober2016
CoreyCPayneOctober2016
 
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
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)
 
Components of CI/CD in DevOps
Components of CI/CD in DevOpsComponents of CI/CD in DevOps
Components of CI/CD in DevOps
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Metrics-driven Continuous Delivery
Metrics-driven Continuous DeliveryMetrics-driven Continuous Delivery
Metrics-driven Continuous Delivery
 
MousumiDebnath-Resume
MousumiDebnath-ResumeMousumiDebnath-Resume
MousumiDebnath-Resume
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Sunil
SunilSunil
Sunil
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
 

Dernier

9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Servicenishacall1
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfCWS Technology
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 

Dernier (6)

Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
 
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdf
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 

Continuous Integration & Delivery for Mobile apps development

Notes de l'éditeur

  1. Desarrollar apps impecables y geniales es el ideal que suele volverse utópico cuando el mercado, reglas de negocio y pretensiones de clientes/usuarios son tan cambiantes. Esto ha impuesto a las metodologías agile como un requisito. Pero en este contexto muchas veces nos vemos obligados a hacer las cosas a las apuradas arriesgándonos a que algo de lo que ya funcionaba se rompa. Estamos a un bug de distancia de quedar como un duque o decepcionar a los usuarios de la app. Es así que hay que apuntar a una deteccion temprana de bugs y crashes. Todo esto se vuelve cada vez mas complejo cuando hay mas de dos desarrolladores trabajando en un mismo code base. Como dice la celebre frase "Muchas manos en el plato hacen garabato", es decir si no se hace una integración cuidadosa de lo que cada dev ha trabajado se pueden causar daños serios. En particular cuando se trata de apps no esta bueno para los usuarios esperar mucho para actualizaciones y hay que evitar los potenciales cuellos de botella que pueden surgir por perder el control de la integración y delivery. Existe una práctica de ingeniería que pretende garantizar todo esto, denominada Continuous Integration and Delivery. Hoy disponemos de herramientas para aplicar esta practica, ayudando a enfocarse en el desarrollo propiamente dicho y no tener que estar pendiente de estos factores para tener todo bajo control. Bitrise ha sido desarrollada por mobile devs y para mobile devs
  2. Planteo: 2 devs desarrollan determinada feature en 4 semanas
  3. Entonces se puede decir que 4 devs pueden desarrollar exactamente la misma feature en 2 semanas (?)
  4. Modelo del ideal (utopico?) de procesos de ingeniería CM refiere a la disciplina para la gestion de la evolucion de sistemas de soft complejos. Consiste en evaluar, coordinar, aprobar e implementar cambios en artefactos que son usados para construir y mantener sistemas de software.
  5. Changes to baselines and the release of work products built from the configuration management system are systematically controlled and monitored. In Agile environments, configuration management (CM) is important because of the need to support frequent change, frequent builds (typically daily), multiple baselines, and multiple teams. (producir deliveries temprano y agregar valor a los clientes) Automatically alerting relevant stakeholders when items are checked in or out or changed, or of decisions made regarding change requests.
  6. The Product Integration process area contains the specific practices associated with generating an integration strategy, integrating product components, and delivering the product to the customer.
  7. CI is the practice of merging all developer working copies to a shared mainline several times a day. (poder detectar fallos cuanto antes) CD is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software with greater speed and frequency. https://www.thoughtworks.com/continuous-integration https://sdtimes.com/cicd/developers-using-ci-cd-report-finds/
  8. Integration is primarily about communication, so you want to ensure that everyone can easily see the state of the system and the changes that have been made to it. Integration allows developers to tell other developers about the changes they have made. Frequent communication allows people to know quickly as changes develop. The whole point of continuous integration is to find problems as soon as you can. Nightly builds mean that bugs lie undetected for a whole day before anyone discovers them. Once they are in the system that long, it takes a long time to find and remove them. Conflicts that stay undetected for weeks can be very hard to resolve. conflicts are particularly awkward bugs to find if they sit for a long time undetected in the code. Frequent commits encourage developers to break down their work into small chunks of a few hours each. This helps track progress and provides a sense of progress. A key part of doing a continuous build is that if the mainline build fails, it needs to be fixed right away. The whole point of working with CI is that you're always developing on a known stable base. It's not a bad thing for the mainline build to break, although if it's happening all the time it suggests people aren't being careful enough about updating and building locally before a commit. When the mainline build does break, however, it's important that it gets fixed fast. A phrase I remember Kent Beck using was "nobody has a higher priority task than fixing the build". This doesn't mean that everyone on the team has to stop what they are doing in order to fix the build, usually it only needs a couple of people to get things working again. It does mean a conscious prioritization of a build fix as an urgent, high priority task. The whole point of Continuous Integration is to provide rapid feedback. Make it Easy for Anyone to Get the Latest Executable
  9. Demasiada teoria por hoy Trasciende modas, plataformas Curriculum No es solo para Devops
  10. Una misma herramienta puede aplicar todo este modelo (En conjunto con CVS) https://www.gocd.org Cruise (una de las primeras) Jenkins ha sido la herramienta por excelencia durante años sobre todo en el mundo Java Hoy esta siendo suplantado por mas modernas herramientas open source PaaS
  11. Elegimos Bitrise porque su logo es mas feliz? Support all services and all the third-party service integrations you know and love
  12. Basta que falle un step para que toda la ejecución del workflow sea fallida
  13. Mientras se esta en rojo puede introducirse otro nuevo issue el cual sera mas dificil de rastrear y resolver
  14. Tareas atomicas + plugins
  15. Demo time
  16. Demo time
  17. Autoincrement app version name Gradle OOM Optimizar worflows y gradle (Ej: Test funcionales por cada PR)
  18. Steps up-to-date Double check for misspelling Always green (trust lost) Steps source code Environment variables First Local then server
  19. Questions?