Hello, and happy new year, also catching up with this thread!
Thanks for starting this discussion, George.
Adding one of our use cases to the list: to provide tools an interface to pick up the latest base image digests used for our hermetic builds.
Currently, our base images are tarballs as we use
buildbox-run-userchroot for execution (similar to docker images).
We wrote scripts to extract and upload the contents of our tarballs to CAS and write the root digest of the images in a config file.
Clients receive the config file containing the root digest of the image, and a wrapper script that invokes
recc reads the config file to inject the build image root digest as a platform property into the Action.
The build image is of course directly related to the outcome of the Action and has to be deterministic for cache hits and also for re-builds when a new image is used.
Using the Asset API, we will have the ability to resolve "linux-build-image:latest" to the relevant digest in a more standardized and native to the tools way, so we won't need all the bespoke scripts we use today.
This will also save us from having to ship an updated config for the new images to be picked up by users.
We can also use the same functionality on our worker hosts to prime their local cache with some common images, as opposed to only downloading the image when it is used.
Another benefit of that is that we can also utilize the API to extract the tarballs and upload our images directly, providing a frictionless user experience there as well.