DISCLAIMER: This is only for Debian-based distributions. WSL is NOT supported.
(Optional) Make a Telegram Bot (@BotFather).
Fork this repository.
Make a GitHub token with proper permissions for uploading releases to your repositories.
Clone your fork of this repository.
Make your changes in
config.sh(more information about the flags below). Make sure you commit and push your changes to your fork.Export GITHUB_TOKEN to your GitHub token (make sure it has permissions to upload releases to your repos).
Optionally export TELEGRAM_CHAT and TELEGRAM_TOKEN to your respective values:
TELEGRAM_CHAT- the ID of the channel/group chat you want the Bot to post your messages to.TELEGRAM_TOKEN- the token of your Telegram Bot.
If you haven't ever built Android on your PC, open a terminal in the directory you cloned this repository and run
setup.sh.Then run
init.shfrom the same folder.
OR
- If you've already built Android on your PC, run
init.sh.
Clone your fork of this repository.
Make your changes in
config.sh(more information about the flags below). Make sure you commit and push your changes to your fork.Open the Jenkins web console.
Make a new job with the "Freeflow" type. Do NOT put spaces in the name of the job.
Add a build step for bash.
Copy the contents of
jenkins.shto it.Change the values of GITHUB_TOKEN and optionally TELEGRAM_CHAT, TELEGRAM_TOKEN to your respective values:
GITHUB_TOKEN- your GitHub token (make sure it has permissions to upload releases to your repos).TELEGRAM_CHAT- the ID of the channel/group chat you want the Bot to post your messages to.TELEGRAM_TOKEN- the token of your Telegram Bot.
- Edit the
git clonecommand for your fork.
GITHUB_USER - your GitHub username
GITHUB_EMAIL - your GitHub email
device - your device codename (e.g. blueline for Pixel 3)
ROM - name of your ROM (e.g. AOSP)
ROM_DIR - directory where your ROM source will reside (e.g. /var/lib/jenkins/AOSP)
ROM_VERSION - version of your ROM (e.g. 9.0 Pie)
official - true if you're building an official build, false if you're building an unofficial build
local_manifest_url - your local manifest URL (e.g. https://example.link/local_manifest.xml)
manifest_url - your ROM's manifest repo URL (e.g. https://android.googlesource.com/platform/manifest)
rom_vendor_name - your ROM's custom vendor name (e.g. lineage)
branch - branch of the manifest to sync (e.g. lineage-16.0)
bacon - the package to build (default: bacon)
buildtype - the build type to build (e.g. userdebug). If you don't specify a build type, it defaults to userdebug.
clean - installclean if you want to clear system/ and vendor/ directories, clean if you want a clean build, false if you want a dirty build
generate_incremental - true if you want the script to generate and upload an incremental update zip, false if you don't want the script to generate and upload an incremental update zip
upload_recovery - true if you want the script to upload the built recovery image, false if you don't want the script to upload the recovery image
ccache - true if you want to build with ccache, false if you don't
ccache_size - how many gigabytes of space to dedicate to ccache (e.g. 50).
jenkins - true - you use Jenkins; false - you don't use Jenkins
release_repo - your GitHub username + name of the repo to upload the releases (e.g. JarlPenguin/releases)
timezone - your timezone (default: UTC)