uazo / bromite-buildtools

my build machine for bromite development
GNU General Public License v3.0
331 stars 10 forks source link

bromite-buildtools

this repo contains my build machine and some scripts I use for Bromite development. the ci uses a modified version of the gihub runner (avaiable here) and use sysbox to improve security. it also contains everything you need to use a self-hosted modified version of goma for a multi-machine build

Setting-up

  1. Prepare folders
cd ~ && mkdir gh-runner
cd gh-runner && mkdir docker-inner
SYSBOX_UID=$(cat /etc/subuid | grep sysbox | cut -d : -f 2)
sudo chown $SYSBOX_UID:$SYSBOX_UID docker-inner/

mkdir /storage
sudo chown $SYSBOX_UID:$SYSBOX_UID /storage
  1. Clone this repo
  2. Prepare .env
cd bromite-buildtools/images/github-runner/
cp .env.example .env
  1. Edit .env file
RUNNER_NAME=pd-gh-runner
GITHUB_PERSONAL_TOKEN=<git-token>
GITHUB_OWNER=uazo
GITHUB_REPOSITORY=bromite-buildtools
RUNNER_LABELS=dev
ALLOWEDAUTHORSLIST=uazo
  1. Prepare for windows cross build Follow the instructions to create the zip with the toolchain

example:

cd path\to\depot_tools\win_toolchain
D:\Downloads\depot_tools\win_toolchain> package_from_installed.py --allow_multiple_vs_installs -w 10.0.20348.0 2019

create the /casefold in the unix host with casefold attribute and unzip the contents into.

~$ ls /casefold/10.0.20348.0/ -la
total 36
drwxr-xr-x 8 root root 4096 Oct  5 13:20  .
drwxr-xr-x 5 root root 4096 Oct  5 13:17  ..
drwxr-xr-x 6 root root 4096 Oct  5 13:19 'DIA SDK'
drwxr-xr-x 2 root root 4096 Oct  5 13:20  sys32
drwxr-xr-x 2 root root 4096 Oct  5 13:20  sys64
drwxr-xr-x 2 root root 4096 Oct  5 13:20  sysarm64
drwxr-xr-x 5 root root 4096 Oct  5 13:20  VC
-rw-rw-rw- 1 root root    5 Sep 26 17:05  VS_VERSION
drwxr-xr-x 3 root root 4096 Oct  5 13:20 'Windows Kits'
  1. Start the runner
    cd bromite-buildtools/images/github-runner/
    ./start-runner.sh

Test Android Version

Simply download latest build on https://github.com/uazo/bromite-buildtools/releases/latest

Test Windows Version

  1. Download https://github.com/henrypp/chrlauncher/releases
  2. Create a chrlauncher.ini
[chrlauncher]

# Custom Chromium update URL (string):
ChromiumUpdateUrl=https://github.com/uazo/bromite-buildtools/releases/latest/download/updateurl.txt

# Command line for Chromium (string):
# See here: http://peter.sh/experiments/chromium-command-line-switches/
ChromiumCommandLine=--user-data-dir=".\User Data" --no-default-browser-check

# Chromium executable file name (string):
ChromiumBinary=chrome.exe

# Chromium binaries directory (string):
# Relative (to chrlauncher directory) or full path (env. variables supported).
ChromiumDirectory=.\bin