diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2020-03-01 13:40:57 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-01 13:40:57 +0000 |
commit | 21c971a7322ae3f6fde8eb33b49322e384e45fac (patch) | |
tree | 3e33d6a2d8019bf56cf7aa48c19b8b7f76f88ce7 /nixos/tests | |
parent | fe0aaf1f7414b51d586bd75c1c1de2ca4357af13 (diff) | |
parent | 6df119a6ecd5e8fa624b4b7d012843883be6391c (diff) | |
download | nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar.gz nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar.bz2 nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar.lz nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar.xz nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.tar.zst nixlib-21c971a7322ae3f6fde8eb33b49322e384e45fac.zip |
Merge pull request #81118 from tilpner/gitdaemon-usercreation
nixos/git-daemon: only create git user if it will be used
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/gitdaemon.nix | 64 |
2 files changed, 65 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2e547780439a..893c2c423efd 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -98,6 +98,7 @@ in fsck = handleTest ./fsck.nix {}; gotify-server = handleTest ./gotify-server.nix {}; grocy = handleTest ./grocy.nix {}; + gitdaemon = handleTest ./gitdaemon.nix {}; gitea = handleTest ./gitea.nix {}; gitlab = handleTest ./gitlab.nix {}; gitolite = handleTest ./gitolite.nix {}; diff --git a/nixos/tests/gitdaemon.nix b/nixos/tests/gitdaemon.nix new file mode 100644 index 000000000000..b610caf06fb2 --- /dev/null +++ b/nixos/tests/gitdaemon.nix @@ -0,0 +1,64 @@ +import ./make-test-python.nix ({ pkgs, ... }: + +let + hashes = pkgs.writeText "hashes" '' + b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c /project/bar + ''; +in { + name = "gitdaemon"; + + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ tilpner ]; + }; + + nodes = { + server = + { config, ... }: { + networking.firewall.allowedTCPPorts = [ config.services.gitDaemon.port ]; + + environment.systemPackages = [ pkgs.git ]; + + services.gitDaemon = { + enable = true; + basePath = "/git"; + }; + }; + + client = + { pkgs, ... }: { + environment.systemPackages = [ pkgs.git ]; + }; + }; + + testScript = '' + start_all() + + with subtest("create project.git"): + server.succeed( + "mkdir /git", + "git init --bare /git/project.git", + "touch /git/project.git/git-daemon-export-ok", + ) + + with subtest("add file to project.git"): + server.succeed( + "git clone /git/project.git /project", + "echo foo > /project/bar", + "git config --global user.email 'you@example.com'", + "git config --global user.name 'Your Name'", + "git -C /project add bar", + "git -C /project commit -m 'quux'", + "git -C /project push", + "rm -r /project", + ) + + with subtest("git daemon starts"): + server.wait_for_unit("git-daemon.service") + + with subtest("client can clone project.git"): + client.succeed( + "git clone git://server/project.git /project", + "sha256sum -c ${hashes}", + ) + ''; +}) |