Integrate the keyboard layout for my Ergodox EZ, which is a layout for QMK, with the depot, including exposing several cross-compilation packages necessary to compile qmk for avr in third_party. Change-Id: Idd43169a0a3cf0be2bd1a578fdaff70388a58bfc Reviewed-on: https://cl.tvl.fyi/c/depot/+/947 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
		
			
				
	
	
		
			106 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
	
		
			2.5 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; [
 | |
|     cgit
 | |
|     git
 | |
|     grpc
 | |
|     nix
 | |
|     openldap
 | |
|     apereo-cas
 | |
|   ];
 | |
| 
 | |
|   various = with depot; [
 | |
|     lisp.dns
 | |
|     nix.buildLisp.example
 | |
|     nix.yants.tests
 | |
|     tools.cheddar
 | |
|     tools.nsfv-setup
 | |
|     web.cgit-taz
 | |
|     web.tvl
 | |
|     (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; [
 | |
|     (systemFor system.system.chupacabra)
 | |
|     xanthous
 | |
|     keyboard.layout
 | |
|   ];
 | |
| })
 |