blob: c70a9dc7eb92d42140168b7bc304dcd5a2e3e16d [file] [view] [edit]
# xTS Pinned Test Builds Generator
## Purpose
Generates the configuration used by Satlab to pin the xTS test builds (CTS, GTS, STS, VTS) it runs per device and OS branch.
## Files
- `EDIT_ME_xts_pinned_test_builds.toml`: Input file mapping each (device, OS branch) pair to desired xTS test builds.
- `generate_xts_pinned_test_builds.py`: Generator script.
- `DO_NOT_EDIT_MANUALLY_xts_pinned_test_builds.json`: Generated output artifact.
## Input format
Pins are keyed by the triple `(device, OS branch, xTS type)`:
```toml
[brya.arsp-26Q2-desktop-release]
gts = "android-gts-14-R2(14-17)-Preview7-15501425.zip"
cts = 16222257
vts = 16222257
sts = "android-sts-17_sts-r55-linux-{arch}.zip"
[brya.arsp-main]
cts = 15901438
vts = 15901438
```
### Devices
A device is a board *or* a model. It is the part of the build target before the first dash, which is how Satlab derives it at run time:
| `--target` | device |
| --- | --- |
| `brya-userdebug` | `brya` |
| `brya-trunk_staging-eng` | `brya` |
| `zork-user` | `zork` |
## How to Use
1. Prerequisites
Authenticate with `luci-auth`:
```sh
luci-auth login -scopes https://www.googleapis.com/auth/androidbuild.internal https://www.googleapis.com/auth/drive.readonly
```
2. Update Input Configuration
Edit `EDIT_ME_xts_pinned_test_builds.toml`.
3. Generate the Config
```sh
python3 generate_xts_pinned_test_builds.py
```
4. Create CL
Commit both `EDIT_ME_xts_pinned_test_builds.toml` and the generated `DO_NOT_EDIT_MANUALLY_xts_pinned_test_builds.json`, then upload a CL for review. Once merged, the generated file will be automatically copied to the GCS bucket.
## All Steps in One Go
Run from `cfg/xts`, on a working branch, after editing `EDIT_ME_xts_pinned_test_builds.toml`:
```sh
# Stop if there are local changes other than the edited input file.
{ [ -z "$(git status --porcelain --untracked-files=no -- ':(top,exclude)cfg/xts/EDIT_ME_xts_pinned_test_builds.toml')" ] ||
{ echo "Aborting, working tree has other changes:"; git status --short --untracked-files=no; false; }; } &&
python3 generate_xts_pinned_test_builds.py &&
git add EDIT_ME_xts_pinned_test_builds.toml DO_NOT_EDIT_MANUALLY_xts_pinned_test_builds.json &&
git commit -m "satlab: cfg/xts Update pinned xTS test builds" &&
git cl upload
```