[tahoe-lafs-trac-stream] [Tahoe-LAFS] #3601: CI builds new images for test jobs even when Tahoe's dependencies haven't changed
Tahoe-LAFS
trac at tahoe-lafs.org
Wed Jan 27 14:07:17 UTC 2021
#3601: CI builds new images for test jobs even when Tahoe's dependencies haven't
changed
---------------------+---------------------------
Reporter: exarkun | Owner:
Type: defect | Status: new
Priority: normal | Milestone: undecided
Component: unknown | Version: n/a
Keywords: | Launchpad Bug:
---------------------+---------------------------
Currently on CircleCI we use pre-built Docker images populated with our
dependencies in order to make build results more easily reproducible and
to speed up individual test jobs.
The Docker images are built and replaced nightly:
https://github.com/tahoe-lafs/tahoe-
lafs/blob/94716c078a5c9cbaf468b88206d911146ba6091e/.circleci/config.yml#L97-L129
There are some downsides to replacing the images this way:
* Often Tahoe's dependencies have not changed. The introduction of a new
image only allows for outside factors to lead to changes in behavior.
This reduces reproducibility since it means the same Tahoe source tested
on two different days might encounter two different environments and end
up with two different results.
* It's wasteful to build images when nothing has changed. It's wasteful
of CircleCI's resources (which we currently consume for free). It's
wasteful of our time since re-built images are less likely to be cached on
build hosts and need to be downloaded which takes time.
For a set of "stable" CI jobs which should only fail if Tahoe introduces a
regression, not if the outside world changes in a way that breaks Tahoe,
the ideal would be to only rebuild the images when Tahoe's dependencies
change, only allow the new image to become the canonical image if the
Tahoe works on the image, and only allow Tahoe dependencies to be resolved
during image creation, not during test execution.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3601>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list