Skip to content

Building

Adam Chance edited this page Dec 27, 2024 · 1 revision

Ktisis uses Nix (the CI uses the Lix fork but Nix should work) for building itself and its Docker images.

Dependencies

All build dependencies are managed by Nix. The Nixpkgs repository that holds the dependencies is version pinned. To update this pin to the latest commit, run:

nix-shell --run "npins update"

in the source root directory. This will update the npins/sources.json file.

NuGet packages

If any NuGet packages are changed within the projects, the dependency lock file must be updated otherwise Nix builds will fail.

To update the lock file, run:

nix-build -A fetch-deps
./result

within the directory of the project where the dependencies were changed. This will update the projects deps.json file.

Docker

Building the Processor and Receiver is as simple as:

nix-build Ktisis.Processor/docker.nix Ktisis.Receiver/docker.nix

This will create two symbolic links named result and result-2. These are symbolic links to the built Docker images which can be loaded into Docker with:

docker load < result
docker load < result-2
Clone this wiki locally