Automate Android App Builds with Jenkins, GitHub Webhooks, and CI/CD"
Set up Jenkins to automatically trigger Android app builds whenever changes are pushed to GitHub.

Jenkins install java
https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/generic-linux-install.html
Install Android SDK on Server
wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O cmdline-tools.zip
unzip cmdline-tools.zip -d cmdline-tools
sudo mkdir -p /usr/local/android-sdk/cmdline-tools
sudo mv cmdline-tools /usr/local/android-sdk/cmdline-tools/latest
nano ~/.bashrc
export ANDROID_HOME=/usr/local/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH
source ~/.bashrc
sdkmanager --licenses
sdkmanager "platform-tools" "platforms;android-35" "build-tools;33.0.2"
adb --version
/usr/local/android-sdk/cmdline-tools/latest/
├── bin/
├── lib/
├── source.properties
└── NOTICE.txt
jenkins global env set
JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto
ANDROID_HOME=/usr/local/android-sdk
PATH = $ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH
sudo chown -R jenkins:jenkins /usr/local/android-sdk
Test SDK Setup
echo "ANDROID_HOME=$ANDROID_HOME"
echo "PATH=$PATH"
adb --version
Android Build Using Jenkins
GitHub Project
- Url
Add Webhook to GitHub
url - https://jenkins_host.com/github-webhook/
type - json
secret empty
ssl verification=enabled
Which events would you like to trigger this webhook?= Just the push event.
active=true
Source management
- git(url, credentials, branch)
Build Triggers
- GitHub hook trigger for GITScm polling
Build Environment
- check add timestamps to console output
Build Steps
gradle build
- use gradlew excecutable
- make gradlew excecutable
- wrapper location = ${workspace}
- Task = clean build --stacktrace
upload to nextcloud using shell
- create folder for nextcloud build
- copy share url for folder
#!/bin/bash
# Nextcloud credentials
NC_USER="EXAMPLE_USER"
NC_PASS="EXAMPLE_PASSWORD"
# Nextcloud WebDAV URL
NC_URL="https://example.com/remote.php/dav/files/jenkins/builds/"
# Artifact to upload
ARTIFACT_PATH="$WORKSPACE/app/build/outputs/apk/debug/app-debug.apk"
# Upload the artifact
curl -u "$NC_USER:$NC_PASS" -T "$ARTIFACT_PATH" "$NC_URL"
echo "Upload complete"
Post Build
Archive file = app\build\outputs\apk\debug\
Mattermost notification = notify success
- custom message = next cloud folder link
- notification message include = nothing about commits