[roll] Roll fuchsia [rbe][resultstore] Establish service profile JSON
Establish schema files for existing default RBE/ResultStore
configurations, along with strongly-typed Python dataclass loaders
and subcommand executables.
Designed using a dual-use script architecture:
1. Python Library: Exposes `Profile` and a strictly pure `load()`
entrypoint to compiler wrappers and orchestrators, shielding
them from JSON parsing and on-disk lookup details.
2. Standalone CLI: Implements a fast, secure, subcommand-based
interface ('list', 'select', 'active') to manage active
sticky profiles, avoiding complex Bash logic inside Vars.sh.
- Created build/rbe/profiles and build/resultstore/profiles
directories with default JSON definitions.
- rbe_profile.py and rs_profile.py:
- load() resolves, parses, and instantiates the active
profile in a strictly pure, side-effect-free manner.
- to_env_dict() serializes profile attributes into standard,
encapsulated environment variables.
- Internalized all on-disk directory lookups and sticky name
lookups behind private-prefixed helper functions.
Original-Original-Bug: 563397434
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1839410
Original-Original-Revision: 529fa1ecc7acd4b4b4bc645208b8f2c67f1bbe49
GitOrigin-RevId: 6ed853854bcd551436f1e9904d24f9a7c9683b08
Change-Id: I5a0bf82760d922af4b35f4ebc5b551d087ff71aa
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1883855
Cr-Commit-Position: refs/heads/main@{#205531}
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.