Skip to content

kaii-lb/crave_gsi_builder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crave_aosp_builder

Forks Stargazers

Prerequisites

foss.crave.io account

Setup Instructions

  • Download crave.conf from API Keys of foss.crave.io dashboard

  • Fork this repo

  • Go to (repo) Settings -> Security -> Secrets and Variables -> Actions

  • Copy your username and authentication token from crave.conf Repository Secrets

  • Create a Repository Secret called CRAVE_USERNAME, with username from crave.conf

  • Create a Repository Secret called CRAVE_TOKEN, with authentication token from crave.conf Repository Secrets Repository Secrets

  • Go to Settings -> Code and Automation -> Actions -> General

  • Set workflow Permissions to "Read and Write Permissions" and save.

  • Now you are ready to build! Go to "Crave Builder" workflow and start building

Selfhosted Runners:

These runners sit in crave devspace CLI or your personal server and run the workflow on there. Use this if you need to bypass the 6 hours timeout limit.

Extra Setup For Selfhosted runner:

  • Follow the above steps

  • On the top menu bar of the repository, click on Actions

  • Self-Hosted Runner -> New Runner Self Hosted Runners

  • Scroll down and copy the Runner Token(avoid closing this tab till the process is done) Finding Runner Token

  • Go back to Actions, select "Create Selfhosted Runner"

  • Run Workflow and enter your Runner token. Ensure you have no random spaces before or after Using Runner token

  • Start the workflow

  • After this is done, you are ready to build! Go to the "Crave Builder(self-hosted)" workflow and start building

(If the runner is offline still, trigger "Start/Restart Selfhosted Runner" workflow to force-restart the selfhosted runner)

Required Secrets

CRAVE_USERNAME (Required)

This is the email you signed up to crave with

example:

person@example.com

CRAVE_TOKEN (Required)

This is the Authorization part of the crave.conf. It should not contain :, spaces, or ,

CRAVE_TOKEN

CUSTOM_YAML (Optional)

If this exists, the crave.yaml will be overridden while running the workflow

example:

CipherOS:
  ignoreClientHostname: true
Arrow OS:
  ignoreClientHostname: true
DerpFest-aosp:
  ignoreClientHostname: true
LOS 20:
  ignoreClientHostname: true
LOS 21:
  ignoreClientHostname: true

For more info, read the documentation here

EXTRA_FILES (Optional)

If this exists, these files will be uploaded too. Remember to use relative path like out/target/product/devicename/file.something and seperate multiple files with spaces.

TELEGRAM_TOKEN (Optional)

Bot token for telegram notifications

TELEGRAM_TO (Optional)

Chat id for telegram notifications

TG_UPLOAD_LIMIT (Optional)

Custom Upload limit for telegram-upload. Default is 2147483648

GH_UPLOAD_LIMIT (Optional)

Custom Upload limit for github releases. Default is 2147483648

Inputs Explanation

Base Project

- These are the projects everyone can build, with a foss.crave.io account
- These are the ones officially added

Repo init Command

- This is only for when you are initializing another ROM. When doing this, ensure you are initializing on top of closest cousin base project
- Don't initialize android 14 on top of android 13 projects
- If you just type 'skip', it will skip the compilation. This is useful for uploading and debugging

Removals

- When we resync another ROM on top, we are bound to get "cannot checkout" errors. To fix this, we add that folder to the Removals tab
- Add a space after .repo/local_manifests and add these folders. Don't change if you don't need to
- Almost defunct now, since /opt/crave/resync.sh script on crave handles everything for us

Local Manifest

- Here you enter the git repo and branch for your local manifests, containing device specific repositories. These will be cloned to .repo/local_manifests

Device Details

- Enter the device codename you want to build for inside DEVICE_NAME
- Enter the makefile name(without the .mk) inside MAKEFILE_NAME

Build Command

- eg. m updatepackage, mka bacon, make recoveryimage

Build Type

- Choose the build type
  • user: Limited access; suited for production

  • userdebug: Like user but with root access and debug capability; very close to production performance

  • eng: Development configuration with faster build time; most suited for day-to-day development

Clean Build

  • Uses fresh Base Project sources without any of your changes(use only for testing/debugging)

Known Issues

  • You Tell Me :)

Extra Info

  • For scheduled builds, it's better to remove the workflow dispatch stuff, check lineage_builder for reference.
  • This Repo is a spiritual successor to azwhikaru's Action-TWRP-Builder

Credits!

FAQs:

Q1. What is this Crave.io? How do I get an account?

A. Crave.io is a build accelerator capable of cutting down build time by quite a bit. They are providing free build servers, however: self signup is disabled.

Please contact either uvatbc(yuvraaj on telegram) or me on discord/telegram.

Remember to share the following:

  • Name
  • Email
  • Git profile(preferably with your device sources or stuff you're proud of)

Q2. Hey, I get an error with this repository! Whom do i ask?

A. Please feel free to contact me through the crave.io discord or ROM Builders telegram. My username is sounddrill

Q3. This doesn't support XXnewrom2024XX! How do I build it?

A. Read this

Here, we enter our repo init command for a non-supported ROM. If we are building something that's supported by crave, we can leave the default as is.

About

Build android ROMs using github actions!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%