forked from hacc/haccfiles
Nixfiles, for hacc.
stuebinm
7d2e5f7576
Rationale: if one build fails, the other one will still continue running. Especially since we already have some (and will presumably add more) proprietary software to nixda which may require manual intervention using nix-prefetch-url, this seems like a good idea. An alternative would be to just specifiy `--keep-going`, but this seems likely to lead to unreadable output. However, I'm not sure what exactly happens when we try to run builds for both hosts at once on the same nix store — it may be that this isn't the best idea, but I guess we can just make the pipelines sequential instead if necessary. pipeline: fix mistake in build command (previous commit contained two builds for nixda, none for hainich) |
||
---|---|---|
common | ||
desktop | ||
hosts | ||
modules | ||
nix | ||
pkgs | ||
.gitignore | ||
.gitlab-ci.yml | ||
default.nix | ||
README.md |
hacc nixfiles
welcome to hacc nixfiles (haccfiles). this is the code describing our nix-based infrastructure.
structure
default.nix
: Entrypoint to the configcommon/
: configuration common to all hostsdesktop/
: desktop-relevant communicationmodules/
: home-grown modules for hacc-specific servicesnix/
: sources files, managed with nivpkgs/
: packages we built and don't want to upstream
working with the haccfiles
deploy:
nix build -f . deploy.$hostname && ./result switch
$hostname
can be replaced with any hostname or group
committing to haccfiles
- Golden Rule: DO NOT COMMIT TO MAIN
- exceptions apply, if you are not sure where to commit, don't commit to main
- split up commits, every commit is one atomic change
- e.g. no big "did some changes" but instead "updated service x", "updated service y", "update service z"
- follow the commit format: "$prefix$place: $change"
- prefix: one of fixup, nothing
- place: one of "modules/$module", "$hostname/service", "common/($place)", "pkgs/$pkgs" or "sources"
- change: describe your change, don't go over the character limit where git starts hiding/wrapping
- Exception: autogenerated messages (merge commits, reverts, etc)