[Scons-users] scons cache in a CI scenario

Mats Wichmann mats at wichmann.us
Mon Oct 29 13:04:56 EDT 2018


Recent discussions about the scons cache, which I've never made use of
in the project that brought me over here to scons, got me to thinking...

A continuous integration setup could potentially benefit from the cache
- if there was a way to share it appropriately.

As far as I can see, a cache is a local entity - you give it a directory
name, which could potentially be shared (NFS, etc.), but still depends
on having a standard pathname.

For builds in a CI system, instances of the builder are constantly spun
up, used, and discarded, so you don't have persistence - in fact lack of
persistence is usually considered a benefit, just like scons's own
reproducible build concept of ignoring the shell environment.

Our builders - there are a bunch, for several different target systems,
do very similar things over and over typically with only very small
changes - you submit a patch to our Gerrit instance, it kicks off a
dozen builds, something goes wrong, you find the bug in one file and
update the patch and the process starts again, beginning with
re-provisioning the builders. But the similarity of most builds to
others that have gone before seem like a profitable candidate for
fetching unaffected build results from a cache.

Any thoughts on how one could implement that, assuming I've not
misunderstood what already exists?  "Repository" is something different,
right? It seems more oriented to sources, but the doc says it covers
derived files as well.  And looks like it also takes a "directory",
rather than a more universal "URL".



More information about the Scons-users mailing list