ci/cd android
TRANSCRIPT
BEKRAF - INDONESIAN AGENCY FOR CREATIVE ECONOMY
Continuous Integration and Continuous Delivery
Rendra ToroOLX Indonesia
Intel Innovator
CHALLENGE - BUGS AND APPLICATION CRASHES
3
RESULT - BAD USER REVIEWS
4
CHALLENGE - LONG FEATURE RELEASES
5
IDEA
FEATURE
CONTINUOUS DELIVERY
6
Reducing Risk
& Waste
Rapid Release Customer Feedback
Innovate
TEST DRIVEN DEVELOPMENT
7
FUNCTIONAL TESTING
8
CONTINUOUS INTEGRATION
9
DEPLOYMENT
10
BETA VERSION DISTRIBUTION
11
Crash Reports Feedback from testers Analytics
CONTINUOUS DELIVERY
12
1. PLAN
2. CODE
4. TEST
3. BUILD
8. RELEASE
5. DEPLOY
7. MONITOR
6. OPERATE
What we have Learn• Define your git flow, don’t
mess up with your master branch (keep clean), create another branch and create Pull Request to order Jenkins to build test and merge to master if successful. (In term of Github, closer/faster and stable would be better).
• Merge your test repository along with your platform repository.
• Write unit test by default, the developer is responsible to write unit testing for any feature that he/she wrote.
• We are still using docker or create environment based on docker, we cant run it on Jenkins-Slave that was docker (Don’t do Docker in Docker for CI).
Branching
Branching
21
Master github Unit Test Build APK FTP to Server Functional Test
Dev Pushrun Webhook
Artifactory
Server 1 for Emulator
Server 2 for Emulator
Server 3 for Emulator
Server 4 for Emulator
Appium Hub
Report Builder Artifact APK
Test
Emulator Emulator Emulator Emulator
Server 1 Server 2 Server 3 Server 4
BEKRAF - INDONESIAN AGENCY FOR CREATIVE ECONOMY
Thank You