parent
							
								
									6828c027d1
								
							
						
					
					
						commit
						33f2784b7c
					
				@ -294,7 +294,7 @@ in
 | 
			
		||||
  ] ./ceph-single-node-bluestore-dmcrypt.nix { };
 | 
			
		||||
  certmgr = handleTest ./certmgr.nix { };
 | 
			
		||||
  cfssl = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./cfssl.nix { };
 | 
			
		||||
  cgit = handleTest ./cgit.nix { };
 | 
			
		||||
  cgit = runTest ./cgit.nix;
 | 
			
		||||
  charliecloud = handleTest ./charliecloud.nix { };
 | 
			
		||||
  chromadb = runTest ./chromadb.nix;
 | 
			
		||||
  chromium = (handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./chromium.nix { }).stable or { };
 | 
			
		||||
 | 
			
		||||
@ -1,113 +1,111 @@
 | 
			
		||||
import ./make-test-python.nix (
 | 
			
		||||
  { pkgs, ... }:
 | 
			
		||||
  let
 | 
			
		||||
    robotsTxt = pkgs.writeText "cgit-robots.txt" ''
 | 
			
		||||
      User-agent: *
 | 
			
		||||
      Disallow: /
 | 
			
		||||
    '';
 | 
			
		||||
  in
 | 
			
		||||
  {
 | 
			
		||||
    name = "cgit";
 | 
			
		||||
    meta = with pkgs.lib.maintainers; {
 | 
			
		||||
      maintainers = [ schnusch ];
 | 
			
		||||
    };
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
  robotsTxt = pkgs.writeText "cgit-robots.txt" ''
 | 
			
		||||
    User-agent: *
 | 
			
		||||
    Disallow: /
 | 
			
		||||
  '';
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  name = "cgit";
 | 
			
		||||
  meta = with pkgs.lib.maintainers; {
 | 
			
		||||
    maintainers = [ schnusch ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    nodes = {
 | 
			
		||||
      server =
 | 
			
		||||
        { ... }:
 | 
			
		||||
        {
 | 
			
		||||
          services.cgit."localhost" = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            package = pkgs.cgit.overrideAttrs (
 | 
			
		||||
              { postInstall, ... }:
 | 
			
		||||
              {
 | 
			
		||||
                postInstall = ''
 | 
			
		||||
                  ${postInstall}
 | 
			
		||||
                  cp ${robotsTxt} "$out/cgit/robots.txt"
 | 
			
		||||
                '';
 | 
			
		||||
              }
 | 
			
		||||
            );
 | 
			
		||||
            nginx.location = "/(c)git/";
 | 
			
		||||
            repos = {
 | 
			
		||||
              some-repo = {
 | 
			
		||||
                path = "/tmp/git/some-repo";
 | 
			
		||||
                desc = "some-repo description";
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
            settings = {
 | 
			
		||||
              readme = [
 | 
			
		||||
                ":README.md"
 | 
			
		||||
                ":date.txt"
 | 
			
		||||
              ];
 | 
			
		||||
  nodes = {
 | 
			
		||||
    server =
 | 
			
		||||
      { ... }:
 | 
			
		||||
      {
 | 
			
		||||
        services.cgit."localhost" = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          package = pkgs.cgit.overrideAttrs (
 | 
			
		||||
            { postInstall, ... }:
 | 
			
		||||
            {
 | 
			
		||||
              postInstall = ''
 | 
			
		||||
                ${postInstall}
 | 
			
		||||
                cp ${robotsTxt} "$out/cgit/robots.txt"
 | 
			
		||||
              '';
 | 
			
		||||
            }
 | 
			
		||||
          );
 | 
			
		||||
          nginx.location = "/(c)git/";
 | 
			
		||||
          repos = {
 | 
			
		||||
            some-repo = {
 | 
			
		||||
              path = "/tmp/git/some-repo";
 | 
			
		||||
              desc = "some-repo description";
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          environment.systemPackages = [ pkgs.git ];
 | 
			
		||||
          settings = {
 | 
			
		||||
            readme = [
 | 
			
		||||
              ":README.md"
 | 
			
		||||
              ":date.txt"
 | 
			
		||||
            ];
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    testScript =
 | 
			
		||||
      { nodes, ... }:
 | 
			
		||||
      ''
 | 
			
		||||
        start_all()
 | 
			
		||||
        environment.systemPackages = [ pkgs.git ];
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
        server.wait_for_unit("nginx.service")
 | 
			
		||||
        server.wait_for_unit("network.target")
 | 
			
		||||
        server.wait_for_open_port(80)
 | 
			
		||||
  testScript =
 | 
			
		||||
    { nodes, ... }:
 | 
			
		||||
    ''
 | 
			
		||||
      start_all()
 | 
			
		||||
 | 
			
		||||
        server.succeed("curl -fsS http://localhost/%28c%29git/cgit.css")
 | 
			
		||||
      server.wait_for_unit("nginx.service")
 | 
			
		||||
      server.wait_for_unit("network.target")
 | 
			
		||||
      server.wait_for_open_port(80)
 | 
			
		||||
 | 
			
		||||
        server.succeed("curl -fsS http://localhost/%28c%29git/robots.txt | diff -u - ${robotsTxt}")
 | 
			
		||||
      server.succeed("curl -fsS http://localhost/%28c%29git/cgit.css")
 | 
			
		||||
 | 
			
		||||
        server.succeed(
 | 
			
		||||
            "curl -fsS http://localhost/%28c%29git/ | grep -F 'some-repo description'"
 | 
			
		||||
        )
 | 
			
		||||
      server.succeed("curl -fsS http://localhost/%28c%29git/robots.txt | diff -u - ${robotsTxt}")
 | 
			
		||||
 | 
			
		||||
        server.fail("curl -fsS http://localhost/robots.txt")
 | 
			
		||||
      server.succeed(
 | 
			
		||||
          "curl -fsS http://localhost/%28c%29git/ | grep -F 'some-repo description'"
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
        server.succeed("sudo -u cgit ${pkgs.writeShellScript "setup-cgit-test-repo" ''
 | 
			
		||||
          set -e
 | 
			
		||||
          git init --bare -b master /tmp/git/some-repo
 | 
			
		||||
          git init -b master reference
 | 
			
		||||
          cd reference
 | 
			
		||||
          git remote add origin /tmp/git/some-repo
 | 
			
		||||
          { echo -n "cgit NixOS Test at "; date; } > date.txt
 | 
			
		||||
          git add date.txt
 | 
			
		||||
          git -c user.name=test -c user.email=test@localhost commit -m 'add date'
 | 
			
		||||
          git push -u origin master
 | 
			
		||||
        ''}")
 | 
			
		||||
      server.fail("curl -fsS http://localhost/robots.txt")
 | 
			
		||||
 | 
			
		||||
        # test web download
 | 
			
		||||
        server.succeed(
 | 
			
		||||
            "curl -fsS 'http://localhost/%28c%29git/some-repo/plain/date.txt?id=master' | diff -u reference/date.txt -"
 | 
			
		||||
        )
 | 
			
		||||
      server.succeed("sudo -u cgit ${pkgs.writeShellScript "setup-cgit-test-repo" ''
 | 
			
		||||
        set -e
 | 
			
		||||
        git init --bare -b master /tmp/git/some-repo
 | 
			
		||||
        git init -b master reference
 | 
			
		||||
        cd reference
 | 
			
		||||
        git remote add origin /tmp/git/some-repo
 | 
			
		||||
        { echo -n "cgit NixOS Test at "; date; } > date.txt
 | 
			
		||||
        git add date.txt
 | 
			
		||||
        git -c user.name=test -c user.email=test@localhost commit -m 'add date'
 | 
			
		||||
        git push -u origin master
 | 
			
		||||
      ''}")
 | 
			
		||||
 | 
			
		||||
        # test http clone
 | 
			
		||||
        server.succeed(
 | 
			
		||||
           "git clone http://localhost/%28c%29git/some-repo && diff -u reference/date.txt some-repo/date.txt"
 | 
			
		||||
        )
 | 
			
		||||
      # test web download
 | 
			
		||||
      server.succeed(
 | 
			
		||||
          "curl -fsS 'http://localhost/%28c%29git/some-repo/plain/date.txt?id=master' | diff -u reference/date.txt -"
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
        # test list settings by greping for the fallback readme
 | 
			
		||||
        server.succeed(
 | 
			
		||||
            "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'"
 | 
			
		||||
        )
 | 
			
		||||
      # test http clone
 | 
			
		||||
      server.succeed(
 | 
			
		||||
         "git clone http://localhost/%28c%29git/some-repo && diff -u reference/date.txt some-repo/date.txt"
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
        # add real readme
 | 
			
		||||
        server.succeed("sudo -u cgit ${pkgs.writeShellScript "cgit-commit-readme" ''
 | 
			
		||||
          set -e
 | 
			
		||||
          echo '# cgit NixOS test README' > reference/README.md
 | 
			
		||||
          git -C reference add README.md
 | 
			
		||||
          git -C reference -c user.name=test -c user.email=test@localhost commit -m 'add readme'
 | 
			
		||||
          git -C reference push
 | 
			
		||||
        ''}")
 | 
			
		||||
      # test list settings by greping for the fallback readme
 | 
			
		||||
      server.succeed(
 | 
			
		||||
          "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'"
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
        # test list settings by greping for the real readme
 | 
			
		||||
        server.succeed(
 | 
			
		||||
            "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F '# cgit NixOS test README'"
 | 
			
		||||
        )
 | 
			
		||||
        server.fail(
 | 
			
		||||
            "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'"
 | 
			
		||||
        )
 | 
			
		||||
      '';
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
      # add real readme
 | 
			
		||||
      server.succeed("sudo -u cgit ${pkgs.writeShellScript "cgit-commit-readme" ''
 | 
			
		||||
        set -e
 | 
			
		||||
        echo '# cgit NixOS test README' > reference/README.md
 | 
			
		||||
        git -C reference add README.md
 | 
			
		||||
        git -C reference -c user.name=test -c user.email=test@localhost commit -m 'add readme'
 | 
			
		||||
        git -C reference push
 | 
			
		||||
      ''}")
 | 
			
		||||
 | 
			
		||||
      # test list settings by greping for the real readme
 | 
			
		||||
      server.succeed(
 | 
			
		||||
          "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F '# cgit NixOS test README'"
 | 
			
		||||
      )
 | 
			
		||||
      server.fail(
 | 
			
		||||
          "curl -fsS 'http://localhost/%28c%29git/some-repo/about/' | grep -F 'cgit NixOS Test at'"
 | 
			
		||||
      )
 | 
			
		||||
    '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user