[rb-general] Reproducible builds and distributed CI
liw at liw.fi
Sun May 19 10:09:40 UTC 2019
bitwise reproducible builds are awesome. I have a question on maybe
building on that for a distributed CI system.
As a hobby, I am developing a continuous integration system
(https://ick.liw.fi/). One of the things I'm wanting for that is
distributed building. The CI system consists of seveal components: the
controller (keeps track of projects and the current state of any
running build) and workers (executes individual build steps).
The distributed idea would be that anyone can run their own
controller, and workers, and can offer workers for any controller.
A lot of people run a desktop machine, or other similar machine, and
could provide some of the resources of that, at least some of the
time, as a worker. Workers can run in isolation, in a highly
restricted VM, and so this is reasonably safe to do.
This immediately brings up the question of how a controller can trust
the output of a worker. Otherwise there's a tempatation to run workers
that produce malicious output.
I'm thinking that if there's enough workers available, the controller
could give the same build to more than one worker, and compare the
result. This is easy if builds are bitwise reproducible. It is not
very easy otherwise.
Builds run in containers, with very controlled build environments. (Or
can be, some of this isn't implmented yet.)
What do you think, you who have a lot of experience with reproducible
builds? Is there any merit in what I'm thinking? Any problems you
foresee in relying in reproducible builds like this? Is it
unreasonable to require random software developers to achieve
I want to build worthwhile things that might last. --joeyh
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: not available
More information about the rb-general