From bc03a047936c757183c99df29b8b3fced3ed1abb Mon Sep 17 00:00:00 2001 From: Nicholas Andrew Date: Sun, 11 Oct 2026 00:21:36 -0400 Subject: [PATCH] ofrp-12.1: add build.toml for the shared pipeline Moves the base settings of the OFRP-12.1 Jenkins job into build.toml: portal project orangefox (R12.1), OFRP-12.1 release naming, ZFS dataset build/ofox-12.1, lunch twrp_-eng with FOX_BUILD_DEVICE, mka adbd, and the OrangeFox .img/.zip with their native .md5 files. README: adding a device no longer needs a new job; adding a base needs build.toml, @warm, a job named after the branch and a portal mapping. Co-Authored-By: Claude Opus 5.5 --- README.md | 14 +++++++++++--- build.toml | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 build.toml diff --git a/README.md b/README.md index 917c588..afef92c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Device manifests for the A-Team Jenkins build pipelines. -Each build job clones this repo, drops one device XML into `.repo/local_manifests/` of a warm source tree, syncs only the projects listed in it, and reads the device info from its annotations. +Each base branch has one Jenkins job (named after the branch) running the shared `Jenkinsfile` from `main`. It rolls the base's warm source tree back to `@warm`, drops one device XML into `.repo/local_manifests/`, syncs only the projects listed in it, reads the device info from its annotations and the base settings from the branch's `build.toml`. ## Layout @@ -85,8 +85,16 @@ plus a `.sha256` for each, e.g. `OFRP-12.1_A-Team_genevn_XT2315-261009.zip`. ``` 2. Copy an existing XML to `.xml` and edit the projects and annotations. 3. Commit and push. -4. Create the Jenkins job (`-`, e.g. `OFRP-genevn`) pointing at the branch and file. +4. That's it: the branch's Jenkins job (named after the branch, e.g. `ofrp-12.1`) lists the new XML in its + `DEVICE` dropdown, and the portal picks it up on its next device sync. ## Adding a base -Create a new branch named `-` (e.g. `shrp-12.1`) and add a device XML for each device built on it. Each base has its own copy of a device's XML, so update model or name changes on every branch that has that device. +1. Create a new branch named `-` (e.g. `shrp-12.1`) and add a device XML for each device built on it. + Each base has its own copy of a device's XML, so update model or name changes on every branch that has that device. +2. Add a `build.toml` (see the README on `main`) describing the base: portal project, release naming, ZFS dataset, + lunch target and release files. +3. Prepare the warm source tree on buildBox and snapshot it as `@warm`. +4. Create a Jenkins job named exactly like the branch, using *Pipeline script from SCM* on `build_manifests` + branch `main`, script path `Jenkinsfile`. +5. Map the portal project to the job in the portal admin. diff --git a/build.toml b/build.toml new file mode 100644 index 0000000..76a9b8f --- /dev/null +++ b/build.toml @@ -0,0 +1,32 @@ +# Build settings for the ofrp-12.1 base, read by the shared Jenkinsfile on main. +# Data only: unknown keys or wrong types stop the build. + +[base] +project = "orangefox" # portal project slug +project_name = "OrangeFox" +version = "R12.1" # version shown in the portal +release_tag = "OFRP" # -_A-Team__- +release_ver = "12.1" +source_root = "/build/ofox-12.1" # mountpoint of zfs_dataset; out/ lives inside it +zfs_dataset = "build/ofox-12.1" # rolled back to @warm before and after every build +warm_check = ["vendor/recovery"] # must exist in the warm base +lunch_target = "twrp_{codename}-eng" +make_extra = ["adbd"] # built together with the ateam.partition target +changelog = "Automated OrangeFox testing build." + +[base.env] # extra environment for lunch and the build +FOX_BUILD_DEVICE = "{codename}" # everything else (OF_* / FOX_*) comes from the tree's OFRP.mk + +# Release files, picked from out/target/product// (exactly one match each) +[outputs.img] +glob = "OrangeFox-*.img" +checksum = "md5" # native sidecar to verify: md5 | sha256 | none + +[outputs.zip] +glob = "OrangeFox-*.zip" +checksum = "md5" +test_zip = true + +# Per-device overrides (lunch_target, make_extra, env, outputs), for example: +# [devices.sycamore_row_5G] +# lunch_target = "twrp_sycamore_row_5G-eng"