Synit: implement test module
This commit is contained in:
parent
42bd83603c
commit
8e5b6624b3
|
@ -15,7 +15,10 @@ let
|
|||
(args // { processManager = "synit"; } // extraParams);
|
||||
|
||||
processes = if exprFile == null then { } else processesFun processesArgs;
|
||||
in pkgs.buildEnv {
|
||||
name = "synit";
|
||||
paths = map (builtins.getAttr "pkg") (builtins.attrValues processes);
|
||||
}
|
||||
in pkgs.runCommand "synit-processes.pr" {
|
||||
nativeBuildInputs = [ pkgs.preserves-tools ];
|
||||
env.config_inputs =
|
||||
pkgs.lib.strings.concatMapStringsSep " " (builtins.getAttr "pkg") (builtins.attrValues processes);
|
||||
} ''
|
||||
cat $(find $config_inputs -name '*.pr') | preserves-tool convert > "$out"
|
||||
''
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
{ profileSettings, exprFile, extraParams, tools, pkgs, system }:
|
||||
|
||||
let
|
||||
executeDeploy =
|
||||
import ../../../test-driver/util/execute-deploy.nix { inherit (pkgs) lib; };
|
||||
|
||||
processesEnvSystem = import ../build-synit-env.nix
|
||||
({ inherit pkgs system exprFile extraParams; } // profileSettings.params);
|
||||
in {
|
||||
inherit (profileSettings) params;
|
||||
|
||||
nixosModules = [ ./nixos-syndicate-server.nix ];
|
||||
|
||||
systemPackages = [ tools.synit ];
|
||||
|
||||
additionalPaths = [ processesEnvSystem ];
|
||||
|
||||
deployProcessManager = "";
|
||||
|
||||
deploySystem = ''
|
||||
machine.wait_for_unit("syndicate-server.service")
|
||||
machine.succeed("${
|
||||
executeDeploy {
|
||||
inherit profileSettings;
|
||||
processManager = "synit";
|
||||
processesEnv = processesEnvSystem;
|
||||
}
|
||||
}")
|
||||
'';
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
syndicate-server = pkgs.syndicate-server or (let
|
||||
repo = builtins.fetchTarball
|
||||
"https://git.syndicate-lang.org/ehmry/syndicate-flake/archive/trunk.tar.gz";
|
||||
pkgs' = import repo { inherit pkgs; };
|
||||
in pkgs'.syndicate-server);
|
||||
|
||||
synit = pkgs.fetchFromGitea {
|
||||
domain = "git.syndicate-lang.org";
|
||||
owner = "synit";
|
||||
repo = "synit";
|
||||
rev = "a2ecd8a4e441f8622a57a99987cb0aa5be9e1dcd";
|
||||
hash = "sha256-M79AJ8/Synzm4CYkt3+GYViJLJcuYBW+x32Vfy+oFUM=";
|
||||
};
|
||||
|
||||
in {
|
||||
systemd.services.syndicate-server = {
|
||||
description = "Syndicate dataspace server";
|
||||
wantedBy = [ "basic.target" ];
|
||||
preStart = ''
|
||||
mkdir -p "/etc/syndicate/services"
|
||||
${lib.getExe pkgs.rsync} -r \
|
||||
--exclude 001-console-getty.pr \
|
||||
--exclude configdirs.pr \
|
||||
--exclude eudev.pr \
|
||||
--exclude hostname.pr \
|
||||
--exclude services \
|
||||
"${synit}/packaging/packages/synit-config/files/etc/syndicate/" \
|
||||
"/etc/syndicate"
|
||||
'';
|
||||
serviceConfig = {
|
||||
ExecStart =
|
||||
"${lib.getExe syndicate-server} --no-banner --config /etc/syndicate";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -10,6 +10,7 @@ import ./agnostic.nix {
|
|||
docker = ../backends/docker/test-module;
|
||||
s6-rc = ../backends/s6-rc/test-module;
|
||||
supervisord = ../backends/supervisord/test-module;
|
||||
synit = ../backends/synit/test-module;
|
||||
systemd = ../backends/systemd/test-module;
|
||||
sysvinit = ../backends/sysvinit/test-module;
|
||||
};
|
||||
|
|
|
@ -122,7 +122,21 @@ checkNixStateDir
|
|||
checkProfile
|
||||
composeOldProfilePath
|
||||
|
||||
# TODO
|
||||
if [ "$profilePath" = "" ]
|
||||
then
|
||||
echo "No profile path was provided!" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Initialize all state
|
||||
|
||||
nixproc-init-state $stateDirArg $runtimeDirArg $logDirArg $tmpDirArg $cacheDirArg $spoolDirArg $lockDirArg $libDirArg $forceDisableUserChangeArg
|
||||
|
||||
# Create new groups and users
|
||||
createNewGroups
|
||||
createNewUsers
|
||||
|
||||
cp -v $profilePath /etc/syndicate/services/processes.pr
|
||||
|
||||
# Delete obsolete users and groups
|
||||
deleteObsoleteUsers
|
||||
|
|
Loading…
Reference in New Issue