{{Header}} {{#seo: |description=Development Notes of {{project name}} and Continuous Integration (CI) }} {{forkme}} = Status Badges = For status badges see:
https://github.com/{{project_name_short}}/{{project_name_short}}#build-status = General Note about CI Services in use for Building {{project name}} = Since all [https://en.wikipedia.org/wiki/Continuous_integration Continuous Integration] (CI) services we know of run Ubuntu and {{project name}} is based on Debian, it was required to add a few CI specific workarounds to {{project name}} 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 {{Code2|mount}} ({{Code2|device-mapper}}), there is unfortunately no CI service which could be used for building {{project name}} Virtual Machine images. Instead, we're CI's for simulating builds of {{project name}} Debian Packages as well as (minimal or full) {{Code2|--[[Dev/Build_Documentation/Physical_Isolation|install-to-root]]}} builds. See also [[Dev/Build_Documentation/10_full#Warning|warning not to use images created inside Continuous Integration (CI) environments for anything besides testing]]! = CI Services in Use = == Travis CI == General: * [https://travis-ci.org/{{project_name_short}}/{{project_name_short}} {{project name}} Travis] * [https://github.com/{{project_name_short}}/{{project_name_short}}/blob/master/.travis.yml {{project name}} .travis.yml] * [http://lint.travis-ci.org/{{project_name_short}}/{{project_name_short}} {{project name}} .travis.yaml validatior] * We're using Travis CI to see if we can build Physically Isolated {{gateway_product_name}} or {{workstation_product_name}}. * [https://github.com/{{project_name_short}}/{{project_name_short}}#build-status Status Badges] Some more technical notes: * Build time hard limit [http://about.travis-ci.org/docs/user/build-configuration/#Build-Timeouts 50 minutes] * Build time inactivity limit [http://about.travis-ci.org/docs/user/build-configuration/#Build-Timeouts 10 minutes] * Support says: The command and the URL to clone currently can't be influenced. * These commands "$ rvm use default --install --binary --fuzzy ; $ ruby --version ; $ rvm --version ; $ gem --version" are not required. Support says: As for the commands listed, those can't be removed either, and they shouldn't add any significant load or time to your build. * Support says: Regarding retaining storage, we have an APT caching service in the works, that's currently in testing. It won't be host-local, but it'll be network-local. * Build failed log: https://api.travis-ci.org/jobs/12119447/log.txt?deansi=true - Failed due to missing device-mapper. No idea if possible to fix. - [https://github.com/travis-ci/travis-ci/issues/1493 Opened a ticket.] * [https://github.com/travis-ci/travis-ci/issues/1494 very low entropy, gpg key creation takes very long]; [https://github.com/travis-ci/travis-ci/issues/1495 impossible to start haveged daemon]: workaround in place. If is CI detected... Linking {{Code|/dev/urandom}} to {{Code|/dev/random}}. In CI environment, there is usually very little entropy. Therefore gpg key creation takes very long. Since no images are deployed from CI systems, we can do this. * If image creation is not possible, Travis CI could still be used to check if the whonix_build script works with --target root switch. * [https://www.evernote.com/shard/s32/sh/0dfcfbe1-b9a9-4f04-bcd4-6508ac4b0de0/8fa5f856cea80ed74aa824d47e3df031 stop a build button] == drone.io == * Only building {{project name}} Debian Packages. No virtual machine images or physically isolated machines, because build timeout is too short. Only running. [https://drone.io/github.com/{{project_name_short}}/{{project_name_short}}/admin {{project name}} drone.io settings.]
sudo -E ./build-steps.d/1100_prepare-build-machine --target root
sudo -E ./build-steps.d/1200_create-debian-packages
* [https://drone.io/github.com/{{project_name_short}}/{{project_name_short}} {{project name}} drone.io] * Build timeout [https://plus.google.com/111708768635110714271/posts/cYnpYJowXZD 15 minutes]? * github web hook (activated): https://drone.io/hook?id=github.com%2FWhonix%2FWhonix = Other CI Services not in use due to issues = == codeship.io == * No root. - Asked support. - Impossible to build {{project name}} VM images. kpartx and mount require root. * [https://www.codeship.io/projects/7701/builds/377197 {{project name}} codeship.io] == shiningpanda-ci.com == * "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 == wercker.com == * 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)
= Footnotes = {{reflist|close=1}} {{Footer}} [[Category:Development]]