tech talk #5 : ci/cd for mobile development - Đinh ngọc kiên
TRANSCRIPT
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