These categories separate CI targets, which hopefully avoids the out-of-space errors we have been seeing on Sourcehut. The sets of CI build targets are made available in the depot itself so that besadii can be updated to create a new build for each target group. For convenience, 'ciBuilds' contains an '__allTargets' attribute which combines the contents of each target batch - this makes it possible to still invoke a build for everything by using: nix-build -A ciBuilds.__allTargets Note: Some targets that were previously built in CI aren't anymore, most importantly my NixOS systems which don't fit on Sourcehut. Change-Id: Ia15ed7b743c8add51ae08ce0827a0ddfacd637e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/570 Reviewed-by: lukegb <lukegb@tvl.fyi>
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.6 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;
 | |
| 
 | |
| 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);
 | |
| 
 | |
|   # List of non-public targets, these are only used in local builds
 | |
|   # and not in CI.
 | |
|   __nonpublic = with depot; [
 | |
|     users.tazjin.emacs
 | |
|     users.tazjin.nixos.camdenSystem
 | |
|     users.tazjin.nixos.frogSystem
 | |
|   ];
 | |
| 
 | |
|   # Combined list of all the targets, used for building everything locally.
 | |
|   __allTargets = foldl' (x: y: x ++ y) self.__nonpublic
 | |
|     (map (k: getAttr k self) self.__evaluatable);
 | |
| 
 | |
|   fun = with depot.fun; [
 | |
|     amsterdump
 | |
|     gemma
 | |
|     quinistry
 | |
|     watchblob
 | |
|     wcl
 | |
|   ];
 | |
| 
 | |
|   gitAndFriends = with depot; [
 | |
|     third_party.cgit
 | |
|     third_party.git
 | |
|     web.cgit-taz
 | |
|   ];
 | |
| 
 | |
|   nix = [ depot.third_party.nix ];
 | |
| 
 | |
|   ops = with depot.ops; [
 | |
|     depot.ops."posix_mq.rs"
 | |
|     besadii
 | |
|     journaldriver
 | |
|     kms_pass
 | |
|     kontemplate
 | |
|     mq_cli
 | |
|   ];
 | |
| 
 | |
|   various = with depot; [
 | |
|     tools.cheddar
 | |
|     lisp.dns
 | |
|     nix.buildLisp.example
 | |
|     nix.yants.tests
 | |
|   ];
 | |
| 
 | |
|   web = with depot.web; [
 | |
|     blog
 | |
|     tvl
 | |
|   ];
 | |
| })
 |