CONFIDENTIAL | 1
Featured Project:
Miramar Federal Office Building, U.S.A. | US $160M Value
Connecting Teams to Build the World
Android CI using Buildkite
Patrick Yin
02 Mar 2018
CONFIDENTIAL | 2
Background
• We use Buddybuild CI for our new iOS and Android App from start.
• Apple acquired Buddybuild this year, team joined Xcode and dropped Android support from 1st Mar 2018.
CONFIDENTIAL | 3
Options
CONFIDENTIAL | 4
Buildkite + Fastlane
We decided to use
• Buildkite for continuous integration
• Fastlane for the delivery
CONFIDENTIAL | 5
Agents
• The BFF CI is running on Buildkite and also integrated with AWS Agents, so we just use the existing AWS Elastic CI
stack.
CONFIDENTIAL | 6
Container
• The Android SDK and JDK is in the Docker image
• Fastlane needs ruby environment, C/C++ development environment
• Pass Buildkite build number into the container
CONFIDENTIAL | 7
Process
Buildkite
Compose
Docker
image on
the agent
Build the
app in
Docker
container
fastlane
Crashlytics
Beta /
Google Play
CONFIDENTIAL | 8
Build number
• The App’s version code and version name based on Buildkite’s build number. The version code is a number and the
version name is a string, e.g. “1.0.0 (213)”
• Android system and Google Play store check the app version with version code.
• Seed the Buildkite’s build number to a number greater than the build number of the last build in Buddybuild

Android CI Using Buildkite

  • 1.
    CONFIDENTIAL | 1 FeaturedProject: Miramar Federal Office Building, U.S.A. | US $160M Value Connecting Teams to Build the World Android CI using Buildkite Patrick Yin 02 Mar 2018
  • 2.
    CONFIDENTIAL | 2 Background •We use Buddybuild CI for our new iOS and Android App from start. • Apple acquired Buddybuild this year, team joined Xcode and dropped Android support from 1st Mar 2018.
  • 3.
  • 4.
    CONFIDENTIAL | 4 Buildkite+ Fastlane We decided to use • Buildkite for continuous integration • Fastlane for the delivery
  • 5.
    CONFIDENTIAL | 5 Agents •The BFF CI is running on Buildkite and also integrated with AWS Agents, so we just use the existing AWS Elastic CI stack.
  • 6.
    CONFIDENTIAL | 6 Container •The Android SDK and JDK is in the Docker image • Fastlane needs ruby environment, C/C++ development environment • Pass Buildkite build number into the container
  • 7.
    CONFIDENTIAL | 7 Process Buildkite Compose Docker imageon the agent Build the app in Docker container fastlane Crashlytics Beta / Google Play
  • 8.
    CONFIDENTIAL | 8 Buildnumber • The App’s version code and version name based on Buildkite’s build number. The version code is a number and the version name is a string, e.g. “1.0.0 (213)” • Android system and Google Play store check the app version with version code. • Seed the Buildkite’s build number to a number greater than the build number of the last build in Buddybuild