diff --git a/flake.nix b/flake.nix index d36bf53..865004e 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,10 @@ let pkgs = nixpkgs.legacyPackages.${system}; in { + checks.tide-module = import ./nix/tests/module.nix { + inherit nixpkgs self system; + }; + packages = { tide-backend = pkgs.callPackage ./nix/packages/backend.nix { }; tide-frontend = pkgs.callPackage ./nix/packages/frontend.nix { diff --git a/nix/tests/module.nix b/nix/tests/module.nix new file mode 100644 index 0000000..59b0a76 --- /dev/null +++ b/nix/tests/module.nix @@ -0,0 +1,40 @@ +{ nixpkgs, self, system }: +let + pkgs = nixpkgs.legacyPackages.${system}; + evaluatedSystem = nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + self.nixosModules.tide + { + services.tide = { + enable = true; + secretFiles = { + adminPassword = "/run/secrets/tide-admin-password"; + mailPassword = "/run/secrets/tide-mail-password"; + secretKeyBase = "/run/secrets/tide-secret-key-base"; + borgPassphrase = "/run/secrets/borg-passphrase"; + borgPrivateKey = "/run/secrets/borg-private-key"; + }; + }; + } + ]; + }; + evaluatedConfig = evaluatedSystem.config; + discourseConfig = evaluatedConfig.services.discourse; + backupConfig = evaluatedConfig.services.borgbackup.jobs.discourse; +in +assert discourseConfig.enable; +assert discourseConfig.hostname == "discourse.torahimderecheretz.com"; +assert discourseConfig.admin.email == "yisroel.d.baum@gmail.com"; +assert discourseConfig.admin.fullName == "Yisroel Baum"; +assert discourseConfig.admin.username == "yisroeldbaum"; +assert discourseConfig.admin.passwordFile == "/run/secrets/tide-admin-password"; +assert discourseConfig.mail.outgoing.passwordFile == "/run/secrets/tide-mail-password"; +assert discourseConfig.secretKeyBaseFile == "/run/secrets/tide-secret-key-base"; +assert backupConfig.repo == + "ssh://oas17j8p@oas17j8p.repo.borgbase.com/./repo"; +assert backupConfig.startAt == "*-*-* 07:15:00"; +assert builtins.elem "/var/lib/discourse" backupConfig.paths; +pkgs.runCommand "tide-module-test" { } '' + touch "$out" +''