tvl-depot/ci-builds.nix
Griffin Smith fa01f515e2 feat(web/panettone): The start of a very simple issue tracker
Initial commit for Panettone, a very simple issue tracker for TVL. In
its current state this launches a web server with authenticates with our
ldap server, and supports listing and creating issues via static html
pages and simple forms.

We've been needing an issue tracker for a while now, but none of the
options out there seem very good - or there are some good ones, but
they're AGPL licensed and we don't want to deal with them. Rather than
muck around with Trac or Bugzilla, we've decided to write our own.

Change-Id: I704f0996d15199329bbd5450f3d959046bf13973
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1337
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-23 19:47:38 +00:00

117 lines
2.7 KiB
Nix

# This file defines the derivations that should be built by CI.
#
# The "categories" (i.e. attributes) below exist because we run out of
# space on Sourcehut otherwise.
{ depot, lib, ... }:
let
inherit (builtins) attrNames filter foldl' getAttr substring;
# attach a nix expression to a drv so we can “build” it
# TODO(Profpatsch): instead of failing evaluation if a test fails,
# we can put the expression of the test failure into $out
# and continue with the other CI derivations.
drvify = name: exp: depot.nix.emptyDerivation {
inherit name;
owo = lib.generators.toPretty {} exp;
};
systemFor = configuration: (depot.third_party.nixos {
inherit configuration;
}).system;
in lib.fix (self: {
__apprehendEvaluators = throw ''
Do not evaluate this attribute set directly. It exists only to group builds
for CI runs of different "project groups".
To use the depot, always start from the top-level attribute tree instead.
'';
# Names of all evaluatable attributes in here. This list will be
# used to trigger builds for each key.
__evaluatable = filter (key: (substring 0 2 key) != "__") (attrNames self);
# Combined list of all the targets, used for building everything locally.
__allTargets =
(with depot.nix.yants; list drv)
(foldl' (x: y: x ++ y) [] (map (k: getAttr k self) self.__evaluatable));
fun = with depot.fun; [
amsterdump
clbot
gemma
quinistry
tvldb
watchblob
wcl
];
ops = with depot.ops; [
depot.ops."posix_mq.rs"
besadii
journaldriver
kontemplate
mq_cli
(systemFor nixos.whitby)
];
third_party = with depot.third_party; [
apereo-cas
bufbuild
cgit
git
grpc
nix
openldap
rapidcheck
] ++ builtins.attrValues lisp;
lisp = with depot.lisp; [
dns
klatre
];
various = with depot; [
nix.buildLisp.example
nix.yants.tests
tools.cheddar
tools.nsfv-setup
web.cgit-taz
web.todolist
web.tvl
web.panettone
(drvify "getBins-tests" nix.getBins.tests)
]
++ nix.runExecline.tests
;
# Haskell packages we've patched locally
haskellPackages = with depot.third_party.haskellPackages; [
generic-arbitrary
hgeometry
hgeometry-combinatorial
vinyl
comonad-extras
depot.third_party.haskell-language-server.ghc883
];
# User-specific build targets
tazjin = with depot.users.tazjin; [
blog.rendered
emacs
finito
homepage
(systemFor nixos.camden)
(systemFor nixos.frog)
];
glittershark = with depot.users.glittershark; [
xanthous
keyboard.layout
owothia
(systemFor system.system.chupacabra)
system.home.chupacabra.activationPackage
];
})