CI/CD for Android
π Learn more about Android action features, integrations and alternatives.
With Buddy, you can create a pipeline that builds, tests, and deploys Android applications on a push to Git. The configuration is super simple and takes 10 to 15 minutes.
Image loading...[η»ε:Example Android delivery pipeline]
1. Create a new project
Go to Projects and click Create new project. Select your Git hosting provider (Buddy, GitHub, Bitbucket, GitLab, or Private Server) and enter your project name.
Image loading...[η»ε:Create new project]
Here's how the project looks in the Code tab:
Image loading...[η»ε:Repository preview in Buddy]
2. Add a new pipeline
Navigate to Pipelines and click New pipeline. In the form, configure the following:
- Name - Enter a descriptive name for your pipeline (e.g., "Deploy to production")
- ID - Optional identifier for the pipeline
- CPU - Select architecture: x64 or ARM64
- Resources per pipeline run - Choose resource allocation (default: Workspace default)
- Definition Location - Optionally check "Store configuration in a Git repository" to use YAML files
Click Add pipeline to create it.
Image loading...[η»ε:Add new pipeline]
3. Configure workflow: contexts and triggers
After creating the pipeline, go to the Workflow tab to configure:
Image loading...[η»ε:Configure Workflow]
Contexts - Click
+to add Git branch/tag context or Environment. See Contexts.Triggers - Click
+to add Git events, Schedule, or Webhook. See Workflow Configuration.
4. Add actions
In this example, we'll add 4 actions that will perform the following tasks:
- Build your Android application
- Sign app with your key
- Upload APK to Google Play
- (Optional) Send notification to Slack
4.1 Build your Android application
Look up and click Build APK on the action list to add it to the pipeline:
Image loading...[η»ε:APK Build on action list]
The Run tab lets you determine the commands to execute. The default commands are:
bashexport ANDROID_HOME="/opt/android/sdk" export PATH=$PATH:/opt/android/sdk/cmdline-tools/tools/bin if [ ! -d "$ANDROID_HOME/cmdline-tools" ]; then curl -o sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip unzip sdk.zip rm sdk.zip mkdir "$ANDROID_HOME/cmdline-tools" mv cmdline-tools "$ANDROID_HOME/cmdline-tools/tools" yes | "$ANDROID_HOME/cmdline-tools/tools/bin/sdkmanager" --licenses fi chmod +x gradlew #./gradlew assembleDebug ./gradlew assembleRelease$$$$$$$$$$$$$$
Image loading...[η»ε:APK Build action configuration]
Once you add the action, you can run the pipeline and check the logs if everything has passed in order:
Image loading...[η»ε:Android build logs]
4.2 Sign your application (APK)
To save the upload key in Buddy, switch to the Variables tab and click Add variable β Asset:
Image loading...[η»ε:Adding new asset]
Configure the asset details:
- enter the name β you will use it in the signing action as the
$ASSET_ID - upload the key from your disk
- make sure that the asset is allowed to be copied to action containers
Image loading...[η»ε:Asset configuration]
With the key safely stored, you can now look up the Sign APK on the action list:
Image loading...[η»ε:Sign APK on action list]
Add the action to the pipeline and fill the main tab with required data:
- APK to sign path: the path in the pipeline filesystem with your APK build
- Key store path: the
$ASSET_IDof the key that you saved in Buddy - Key store password: the password that you provided when creating the key
Image loading...[η»ε:Sign APK action configuration]
4.3 Deploy APK to Google Play
Now, we can deploy the signed package to the Google store. Before adding the publishing action, however, you need to configure a few things in Google:
Enable Google Play Android Developer API in your gcloud project:
Image loading...[η»ε:Google Play Android Developer API]
Create a service account in Google Cloud with a private key in the
.jsonformat:Image loading...[η»ε:Creating service account in Google]
Image loading...[η»ε:Saving key as JSON]
Invite the created user to your Google Play account and grant them
Releasespermissions to allow publishing to Google Play:Image loading...[η»ε:Granting permissions to Google Play]
With everything prepared, you can finally add the Google Play Publish APK action to the pipeline:
Image loading...[η»ε:Google Play Publish APK]
The action requires an integration with Google Play Store. When adding the integration, upload the key generated in the associated service account:
Image loading...[η»ε:Adding Google Play Store integration]
In the action details, select the signed package in the pipeline filesystem, define the development track (alpha, beta, production, etc.), and enter the app ID:
Image loading...[η»ε:Google Play Publish APK action configuration]
4.4 (Optional) Send notification to Slack
You can configure Buddy to send your team a message after a new package is released. In this example we'll use Slack:
Image loading...[η»ε:Notification actions]
Last modified on Nov 20, 2025