From 78317fba968d2a2b206220b4ae2f9bcd3703b3f3 Mon Sep 17 00:00:00 2001 From: Anton Tetov Date: Tue, 9 Dec 2025 10:44:33 +0100 Subject: [PATCH] nixos/karakeep: add nixosTest --- nixos/tests/all-tests.nix | 1 + nixos/tests/web-apps/karakeep.nix | 33 ++++++++++++++++++++++++++++ pkgs/by-name/ka/karakeep/package.nix | 2 ++ 3 files changed, 36 insertions(+) create mode 100644 nixos/tests/web-apps/karakeep.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index b92e76ed60af..c08a7bed4acd 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -714,6 +714,7 @@ in kanboard = runTest ./web-apps/kanboard.nix; kanidm = runTest ./kanidm.nix; kanidm-provisioning = runTest ./kanidm-provisioning.nix; + karakeep = runTest ./web-apps/karakeep.nix; karma = runTest ./karma.nix; kavita = runTest ./kavita.nix; kbd-setfont-decompress = runTest ./kbd-setfont-decompress.nix; diff --git a/nixos/tests/web-apps/karakeep.nix b/nixos/tests/web-apps/karakeep.nix new file mode 100644 index 000000000000..a7d46f39a4fc --- /dev/null +++ b/nixos/tests/web-apps/karakeep.nix @@ -0,0 +1,33 @@ +{ lib, ... }: +let + port = 3001; + host = "karakeep_server"; +in +{ + name = "karakeep"; + meta.maintainers = with lib.maintainers; [ tetov ]; + + nodes.${host} = { + networking.firewall.allowedTCPPorts = [ port ]; + + services.karakeep = { + enable = true; + extraEnvironment = { + HOST = host; + PORT = toString port; + DISABLE_NEW_RELEASE_CHECK = "true"; + }; + meilisearch.enable = true; + }; + }; + + testScript = '' + import json + + ${host}.wait_for_unit("karakeep-web") + + resp = json.loads(${host}.wait_until_succeeds("curl -sS -f http://${host}:${toString port}/api/health", timeout=300)) + + assert resp["status"] == "ok" + ''; +} diff --git a/pkgs/by-name/ka/karakeep/package.nix b/pkgs/by-name/ka/karakeep/package.nix index 2c2e9c3129a3..c218583f374d 100644 --- a/pkgs/by-name/ka/karakeep/package.nix +++ b/pkgs/by-name/ka/karakeep/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, nix-update-script, + nixosTests, testers, nodejs, node-gyp, @@ -128,6 +129,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { tests = { + inherit (nixosTests) karakeep; version = testers.testVersion { package = finalAttrs.finalPackage; # remove hardcoded version if upstream syncs general version with cli