Blibli.com mobile apps developer is delivering constant feature and code change, the work of building and submitting mobile apps code to several environment: UAT, Staging and Production to different audience is become repetitive with small value added. So we automate this process using Atlassian Bamboo and Hockey App.
We will share how we manage our deployment pipeline, how it is automated, what challange we face during those process.
The talk will be done by 3 person: me, Jimmy Harijanto (iOS Developer) and Blasius Neri (Android Developer).
3. Prologue
Continuous Delivery for Mobile Apps (Android/iOS)
Prologue – The Benefits of Continuous Delivery – Chosen Platform – Workflow – Example of Usage
5. The Benefits of
Continuous Delivery
Continuous Delivery for Mobile Apps (Android/iOS)
Prologue – The Benefits of Continuous Delivery – Chosen Platform – Workflow – Example of Usage
7. The Benefits of Continuous Delivery
Velocity Productivity Sustainability
8. The Benefits of Continuous Delivery
Keep the build fast
Make it easy to get the latest builds
Avoid last-minute chaos at release dates
Everyone can see the results of the latest build
9. Chosen Platform
Continuous Delivery for Mobile Apps (Android/iOS)
Prologue – The Benefits of Continuous Delivery – Chosen Platform – Workflow – Example of Usage
12. Chosen Platform
Bamboo
• Pros:
• Integrates well with other Atlassian Products
• Nice modern interface
• Easier to use
• Cons:
• Expensive
• Not so easy to find other users to talk to
13. Chosen Platform
Jenkins
• Pros:
• Open source and free
• Comes with a wide range of plugins
• Integrates and works with all major tools
• Cons:
• Unpredictable costs
• Lack of governance
• No collaborations feature
14. Workflow
Continuous Delivery for Mobile Apps (Android/iOS)
Prologue – The Benefits of Continuous Delivery – Chosen Platform – Workflow – Example of Usage
19. Example of Usage
Continuous Delivery for Mobile Apps (Android/iOS)
Prologue – The Benefits of Continuous Delivery – Chosen Platform – Workflow – Example of Usage
20. Example of Usage
Plans on Bamboo
Build Pull Requests (for safety net with all new code tested and
buildable)
Using bamboo script plugin
./gradlew --info --stacktrace clean jacocoTestReport -Dorg.gradle.jvmargs=-Xmx2048M --no-
daemon -Dkotlin.compiler.execution.strategy="out-of-process“
21. Example of Usage
Plans on Jenkins
Daily Build and Upload to Playstore
Using shell script script
#building andriod build
cd /opt/Android/workspace/android_build_blibli_app/
./gradlew clean assembleRelease
#signing the app
cd <PATH>/app/build/outputs/apk/flavorUnsigned/release/
<PATH_TO_SIGNATURE>sign --<KEYSTORE_PATH> KEYSTORE_NAME.keystore --ks-pass
pass:<PASS> --ks-key-alias <ALIAS> <APK_NAME>.apk
mv <APK_NAME> <APK_NAME>-${BUILD_NUMBER}.apk
22. Example of Usage
Build & Upload to the HockeyApp/Playstore
Source
Code
Checkout
Increment
Build
Version
Build and
Archive
Upload the
APK to the
HockeyApp /
Playstore
24. Example of Usage
4 Available Plans
• Build Pull Requests
• Build Main Branches
• Build, Archive, Export & Upload to the HockeyApp
• Build, Archive, Export & Upload to the AppStore
29. Example of Usage
Build, Archive, Export & Upload to the AppStore
Source Code
Checkout
Increment Build
Version
Build and
Archive
Move All
Required Files
to a Specific
Folder
Upload the IPA
to the AppStore
30. Example of Usage
Build, Archive, Export & Upload to the AppStore
• Source Code Checkout
• Increment Build Version
• Build & Archive
• Move All Required Files to a Specific Folder
• Upload the IPA to the AppStore
32. Example of Usage
Build, Archive, Export & Upload to the AppStore
• Source Code Checkout
• Increment Build Version
• Build & Archive
• Move All Required Files to a Specific Folder
• Upload the IPA to the AppStore
34. Example of Usage
Build, Archive, Export & Upload to the AppStore
• Source Code Checkout
• Increment Build Version
• Build & Archive
• Move All Required Files to a Specific Folder
• Upload the IPA to the AppStore
36. Example of Usage
Build, Archive, Export & Upload to the AppStore
• Source Code Checkout
• Increment Build Version
• Build & Archive
• Move All Required Files to a Specific Folder
• Upload the IPA to the AppStore