# 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](https://github.com/uazo/runner)) and use [sysbox](https://github.com/nestybox/sysbox) to improve security. it also contains everything you need to use a self-hosted modified version of [goma](https://github.com/uazo/goma-server) 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
```

2. Clone this repo
3. Prepare `.env`

```
cd bromite-buildtools/images/github-runner/
cp .env.example .env
```

4. 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
```

5. Prepare for windows cross build
Follow the [instructions](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/win_cross.md#if-you_re-not-at-google) 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](https://unix.stackexchange.com/questions/558977/how-to-enable-new-in-kernel-5-2-case-insensitivity-for-ext4-on-a-given-directory) 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'
```

6. Start the runner
```
cd bromite-buildtools/images/github-runner/
./start-runner.sh
```
