nixos/tests/immich-vectorchord-reindex: init

This commit is contained in:
Diogo Correia
2025-10-25 01:45:40 +01:00
parent c0c664b327
commit 007307973c
3 changed files with 76 additions and 1 deletions

View File

@@ -733,6 +733,7 @@ in
immich = runTest ./web-apps/immich.nix;
immich-public-proxy = runTest ./web-apps/immich-public-proxy.nix;
immich-vectorchord-migration = runTest ./web-apps/immich-vectorchord-migration.nix;
immich-vectorchord-reindex = runTest ./web-apps/immich-vectorchord-reindex.nix;
incron = runTest ./incron.nix;
incus = pkgs.recurseIntoAttrs (
handleTest ./incus {

View File

@@ -0,0 +1,74 @@
{ ... }:
{
name = "immich-vectorchord-reindex";
nodes.machine =
{ lib, pkgs, ... }:
{
# These tests need a little more juice
virtualisation = {
cores = 2;
memorySize = 2048;
diskSize = 4096;
};
services.immich = {
enable = true;
environment.IMMICH_LOG_LEVEL = "verbose";
};
services.postgresql.extensions = lib.mkForce (ps: [
ps.pgvector
# pin vectorchord to an older version simulate version bump
(ps.vectorchord.overrideAttrs (prevAttrs': rec {
version = "0.5.2";
src = pkgs.fetchFromGitHub {
owner = "tensorchord";
repo = "vectorchord";
tag = version;
hash = "sha256-KGwiY5t1ivFiYex3D20y3sdiu3CT9LCDd2fPnRE56jM=";
};
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit src;
hash = "sha256-Vn3c/xuUpQzERJ74I0qbvufTZtW3goefPa5B/nOUO48=";
};
}))
]);
specialisation."immich-vectorchord-upgraded".configuration = {
# needs to be lower than mkForce, otherwise it does not get rid of the previous version
services.postgresql.extensions = lib.mkOverride 40 (ps: [
ps.pgvector
ps.vectorchord
]);
};
};
testScript =
{ nodes, ... }:
let
specBase = "${nodes.machine.system.build.toplevel}/specialisation";
vectorchordUpgraded = "${specBase}/immich-vectorchord-upgraded";
in
''
def immich_works():
machine.wait_for_unit("immich-server.service")
machine.wait_for_open_port(2283) # Server
machine.wait_for_open_port(3003) # Machine learning
machine.succeed("curl --fail http://localhost:2283/")
immich_works()
machine.succeed("${vectorchordUpgraded}/bin/switch-to-configuration test")
# just tests that reindexing is triggered
machine.wait_until_succeeds(
"journalctl -o cat -u postgresql-setup.service | grep 'REINDEX'"
)
immich_works()
'';
}

View File

@@ -251,7 +251,7 @@ stdenv.mkDerivation {
passthru = {
tests = {
inherit (nixosTests) immich immich-vectorchord-migration;
inherit (nixosTests) immich immich-vectorchord-migration immich-vectorchord-reindex;
};
machine-learning = immich-machine-learning;