2. CI/CD FOR MOBILE DEVELOPMENT
OUTLINES
▸ Understand CI/CD
▸ CI/CD for Mobile development
▸ References
3. 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.
4. 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
6. 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…
8. CI/CD FOR MOBILE DEVELOPMENT
PRE-DEPLOYMENT TESTING
‣ Should (must) be mandatory
‣ Unit tests, TDD approach…
‣ Test frameworks: XCTest, JUnit, Appium, KIF…
10. 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…
11. CI/CD FOR MOBILE DEVELOPMENT
PACKAGING AND DEPLOYMENT TO THE
TEST ENVIRONMENT
12. 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
14. 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!