21
CI/CD FOR MOBILE DEVELOPMENT TECH TALK #5 DINH NGOC KIEN - INNOVATUBE

Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

Embed Size (px)

Citation preview

Page 1: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

TECH TALK #5

DINH NGOC KIEN - INNOVATUBE

Page 2: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

OUTLINES

▸ Understand CI/CD

▸ CI/CD for Mobile development

▸ References

Page 3: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS INTEGRATION

Continuous integration (CI) is a development approach that favors testing and reporting of changes to a given build as they happen.

Page 4: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

HOW DOES CI WORK?

▸ Pushing to the code repository

▸ Static analysis

▸ Pre-deployment testing

▸ Packaging and deployment to the test environment

▸ Post-deployment testing

Page 5: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

PUSHING TO THE CODE REPOSITORY

Page 6: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

STATIC ANALYSIS

‣ Static analysis is often the first step in the pipeline.

‣ Its execution tends to be very fast.

‣ The cost of the maintenance effort is close to nothing.

‣ Example tools:

‣ Java: CheckStyle, FindBugs…

‣ JS: JSLint, JSHint…

Page 7: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

STATIC ANALYSIS

Page 8: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

PRE-DEPLOYMENT TESTING

‣ Should (must) be mandatory

‣ Unit tests, TDD approach…

‣ Test frameworks: XCTest, JUnit, Appium, KIF…

Page 9: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

PRE-DEPLOYMENT TESTING

Page 10: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

PACKAGING AND DEPLOYMENT TO THE TEST ENVIRONMENT‣ Depend on framework and programming language

‣ Java: JAR, WAR files…

‣ Javascript: minify code, send to CDN server…

‣ Create Docker container, wrap VM vagrant…

Page 11: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

PACKAGING AND DEPLOYMENT TO THE TEST ENVIRONMENT

Page 12: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

POST-DEPLOYMENT TESTING

‣ Execute tests that needs deployed-product:

‣ Functional, Integration, Performance tests

‣ Tools, technologies:

‣ Selenium, Codecept, Gatling…

‣ Apply BDD (Behavior-driven development) for functional or acceptance tests

Page 13: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

POST-DEPLOYMENT TESTING

Page 14: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DELIVERY/DEPLOYMENT

▸ Continuous Delivery is a development approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time.

▸ Always be able to put a product into production!

▸ Continuous Deployment focus on end-user’s accessibility to deployed-product relies on any changes of code.

▸ Automatically deploy the product into production whenever it passes QA!

Page 15: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DELIVERY/DEPLOYMENT

Page 16: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DELIVERY

Page 17: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DEPLOYMENT

Page 18: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

▸ Different from CI/CD for web, webapp

CI/CD FOR MOBILE DEVELOPMENT

CI/CD FOR MOBILE APPS

Page 19: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

REFERENCES

Page 20: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT

REFERENCES

Page 21: Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên

CI/CD FOR MOBILE DEVELOPMENT