Unverified Commit 00730797 authored by Diogo Correia's avatar Diogo Correia
Browse files

nixos/tests/immich-vectorchord-reindex: init

parent c0c664b3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 {
+74 −0
Original line number Diff line number Diff line
{ ... }:
{
  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()
    '';
}
+1 −1
Original line number Diff line number Diff line
@@ -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;