add nix derivation for complement

Alternative to this would be just running 'go test' and pointing it at
the complement source code when we want to do a test run. This would
mean that we can't cache the unit test build, and would have to include
the 'olm' input in the devshell.
This commit is contained in:
Benjamin Lee 2024-06-06 21:34:23 -07:00
parent e2318cad8a
commit d20e217b1c
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4
2 changed files with 36 additions and 0 deletions

View file

@ -20,6 +20,8 @@
let let
# Keep sorted # Keep sorted
mkScope = pkgs: pkgs.lib.makeScope pkgs.newScope (self: { mkScope = pkgs: pkgs.lib.makeScope pkgs.newScope (self: {
complement = self.callPackage ./nix/pkgs/complement {};
craneLib = craneLib =
(inputs.crane.mkLib pkgs).overrideToolchain self.toolchain; (inputs.crane.mkLib pkgs).overrideToolchain self.toolchain;
@ -72,6 +74,7 @@
{ {
packages = { packages = {
default = (mkScope pkgs).default; default = (mkScope pkgs).default;
complement = (mkScope pkgs).complement;
} }
// //
builtins.listToAttrs builtins.listToAttrs

View file

@ -0,0 +1,33 @@
# Dependencies (keep sorted)
{ buildGoModule
, fetchFromGitHub
, lib
, olm
}:
buildGoModule {
name = "complement";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "complement";
rev = "5b72981ea3de814a2c41e010dbc0a2cffcbd2e79";
hash = "sha256-kSZcuXHHRsq6Vfv2rDBq682VdUkeRWse944fR25Zc0A=";
};
vendorHash = "sha256-mNt6lI4ppVjZC5UMsNqEDHQ0kjXutEFZTCMvXwp24ew=";
buildInputs = [ olm ];
doCheck = false;
postBuild = ''
# compiles the tests into a binary
go test -c ./tests -o "$GOPATH/bin/complement.test"
'';
meta = {
description = "Matrix compliance test suite";
homepage = "https://github.com/matrix-org/complement";
license = lib.licenses.asl20;
};
}