The Fuchsia project uses Chrome Infrastructure Package Deployment (CIPD) to store and distribute prebuilt files.
A CIPD package is an arbitrary collection of files, stored in
a remote content-addressed store,
and is distributed to a Fuchsia checkout through the
jiri
tool. Also, using the cipd
command-line tool, you can download a CIPD package
directly, for example, to examine its content.
CIPD packages are typically used to distribute the following files:
- Host prebuilt binaries required by the build (for example, clang toolchain).
- Fuchsia prebuilt ELF binaries generated out-of-tree (for example, Goldfish Vulkan ICD).
- Prebuilt Fuchsia archive (FAR) files that contain binaries and metadata for software that is built for Fuchsia by other teams (for example, chromium/fuchsia/webrunner-arm64).
Once you set up continuous integration (CI) with Fuchsia, Fuchsia’s CI system fetches those new packages and rolls them into the Fuchsia project through the global integration process.
When you publish a new revision of your prebuilt package to CIPD, the latest
ref in the
CIPD store automatically points to the new revision. Fuchsia’s CI system
monitors your package’s latest
ref. When it detects that the latest
ref is
updated, the system fetches the new package and rolls it into the Fuchsia
project.