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

  • View
    223

  • Download
    6

  • Category

    Mobile

Preview:

Citation preview

CI/CD FOR MOBILE DEVELOPMENT

TECH TALK #5

DINH NGOC KIEN - INNOVATUBE

CI/CD FOR MOBILE DEVELOPMENT

OUTLINES

▸ Understand CI/CD

▸ CI/CD for Mobile development

▸ References

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.

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

CI/CD FOR MOBILE DEVELOPMENT

PUSHING TO THE CODE REPOSITORY

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…

CI/CD FOR MOBILE DEVELOPMENT

STATIC ANALYSIS

CI/CD FOR MOBILE DEVELOPMENT

PRE-DEPLOYMENT TESTING

‣ Should (must) be mandatory

‣ Unit tests, TDD approach…

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

CI/CD FOR MOBILE DEVELOPMENT

PRE-DEPLOYMENT TESTING

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…

CI/CD FOR MOBILE DEVELOPMENT

PACKAGING AND DEPLOYMENT TO THE TEST ENVIRONMENT

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

CI/CD FOR MOBILE DEVELOPMENT

POST-DEPLOYMENT TESTING

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!

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DELIVERY/DEPLOYMENT

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DELIVERY

CI/CD FOR MOBILE DEVELOPMENT

CONTINUOUS DEPLOYMENT

▸ Different from CI/CD for web, webapp

CI/CD FOR MOBILE DEVELOPMENT

CI/CD FOR MOBILE APPS

CI/CD FOR MOBILE DEVELOPMENT

REFERENCES

CI/CD FOR MOBILE DEVELOPMENT

REFERENCES

CI/CD FOR MOBILE DEVELOPMENT

Recommended