General Note about CI Services in use for Building Whonix ™
Since all Continuous Integration (CI) services we know of run Ubuntu and Whonix ™ is based on Debian, it was required to add a few CI specific workarounds to Whonix ™ build script. Therefore, if a CI build works, that doesn't necessarily mean, that a Debian based build would succeed as well. So the usefulness of the results is a bit limited. Nevertheless, compatibility with CI environments is a very useful "stress test" for the build script. It helps early spotting most bugs, which break the build.
Since there are no free CI services supporting mount (device-mapper), there is unfortunately no CI service which could be used for building Whonix ™ Virtual Machine images. Instead, we're CI's for simulating builds of Whonix ™ Debian Packages as well as (minimal or full) --install-to-root builds.
CI Services in Use
- Only building Whonix ™ Debian Packages. No virtual machine images or physically isolated machines, because build timeout is too short. Only running.
sudo -E ./build-steps.d/1100_prepare-build-machine --target root sudo -E ./build-steps.d/1200_create-debian-packages
- Whonix ™ drone.io
- Build timeout 15 minutes?
- github web hook (activated): https://drone.io/hook?id=github.com%2FWhonix%2FWhonix
Other CI Services not in use due to issues
- No root. - Asked support. - Impossible to build Whonix ™ VM images. kpartx and mount require root.
- Whonix ™ codeship.io
- "Due to our limited capacity we cannot accept all projects at once and that's why your subscription was queued. As we increase our capacity we will allow more and more open-source projects, based on a first registered, first served policy. Here is your position in the queue:" 198 Whonix
- has $WERCKER_CACHE_DIR
- gpg key creation takes very very log due to low entropy - asked support
- another issue while running grml-debootstrap
/dev/mapper/control: open failed: Operation not permitted Failure to communicate with kernel device-mapper driver. device mapper prerequisites not met * Error setting up loopback device. -> Failed (rc=1)