Djinn CI is a continuous integration system that allows for running builds in Docker containers and Linux VMs. Builds can be run on the server, or they can be run offline using the offline runner. Each build is configured via a simple YAML manifest that describes how the build should be run, and what commands should be executed within the build.
Before you start contributing read the Architecture document that details the architecture of Djinn CI and how everything fits together.
Building from source
If you cannot get hold of a binary distribution then you can always build Djinn from source. Read through docs/admin/building.md for more information on building from source.
You can download the
djinn-dev image that is used in the build itself, and use this for local development. The image can be downloaded here. You can use the image for local development via
qemu, like so,
$ qemu-system-x86_64 -daemonize \ -enable-kvm \ -m 8192 \ -drive file=djinn-dev,media=disk,if=virtio \ -net nic,model=virtio \ -smp 2 \ -net user,hostfwd=tcp::2222-:22,hostfwd=tcp::5432-:5432,hostfwd=tcp::6379-:6379 \ -display none
once booted you will be able to SSH into it as
root on port
$ ssh -p 2222 [email protected]
the ports for Redis (
6379), and PostgreSQL (
5432) will also be locally accessible too.
mgrt is used for performing revisions against for Djinn CI. Once the virtual machine is booted, you can run the following mgrt command,
$ mgrt run -c schema -type postgresql -dsn "host=localhost port=5432 dbname=djinn user=djinn password=secret" $ mgrt run -c perms -type postgresql -dsn "host=localhost port=5432 dbname=djinn user=djinn password=secret"