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_<codename>-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 <noreply@anthropic.com>
This commit is contained in:
parent
7365370b30
commit
bc03a04793
2 changed files with 43 additions and 3 deletions
14
README.md
14
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 `<codename>.xml` and edit the projects and annotations.
|
||||
3. Commit and push.
|
||||
4. Create the Jenkins job (`<RECOVERY>-<codename>`, 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 `<base>-<version>` (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 `<base>-<version>` (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 `<dataset>@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.
|
||||
|
|
|
|||
32
build.toml
Normal file
32
build.toml
Normal file
|
|
@ -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" # <release_tag>-<release_ver>_A-Team_<codename>_<model>-<YYMMDD>
|
||||
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/<codename>/ (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"
|
||||
Loading…
Reference in a new issue