Merge pull request #228815 from mweinelt/gitea-runner-test

nixos/tests/gitea: Tests actions runner registration

authored by Emily and committed by GitHub d7937ece 5150e298

+26 -1
+26 -1
nixos/tests/gitea.nix
··· 37 package = giteaPackage; 38 settings.service.DISABLE_REGISTRATION = true; 39 settings."repository.signing".SIGNING_KEY = signingPrivateKeyId; 40 }; 41 environment.systemPackages = [ giteaPackage pkgs.gnupg pkgs.jq ]; 42 services.openssh.enable = true; 43 }; 44 client1 = { config, pkgs, ... }: { 45 environment.systemPackages = [ pkgs.git ]; ··· 49 }; 50 }; 51 52 - testScript = let 53 inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; 54 in '' 55 GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no" 56 REPO = "gitea@server:test/repo" ··· 125 'test "$(curl http://localhost:3000/api/v1/repos/test/repo/commits ' 126 + '-H "Accept: application/json" | jq length)" = "1"' 127 ) 128 ''; 129 }); 130 in
··· 37 package = giteaPackage; 38 settings.service.DISABLE_REGISTRATION = true; 39 settings."repository.signing".SIGNING_KEY = signingPrivateKeyId; 40 + settings.actions.ENABLED = true; 41 }; 42 environment.systemPackages = [ giteaPackage pkgs.gnupg pkgs.jq ]; 43 services.openssh.enable = true; 44 + 45 + specialisation.runner = { 46 + inheritParentConfig = true; 47 + 48 + configuration.services.gitea-actions-runner.instances."test" = { 49 + enable = true; 50 + name = "ci"; 51 + url = "http://localhost:3000"; 52 + labels = [ 53 + # don't require docker/podman 54 + "native:host" 55 + ]; 56 + tokenFile = "/var/lib/gitea/runner_token"; 57 + }; 58 + }; 59 }; 60 client1 = { config, pkgs, ... }: { 61 environment.systemPackages = [ pkgs.git ]; ··· 65 }; 66 }; 67 68 + testScript = { nodes, ... }: let 69 inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; 70 + serverSystem = nodes.server.system.build.toplevel; 71 in '' 72 GIT_SSH_COMMAND = "ssh -i $HOME/.ssh/privk -o StrictHostKeyChecking=no" 73 REPO = "gitea@server:test/repo" ··· 142 'test "$(curl http://localhost:3000/api/v1/repos/test/repo/commits ' 143 + '-H "Accept: application/json" | jq length)" = "1"' 144 ) 145 + 146 + with subtest("Testing runner registration"): 147 + server.succeed( 148 + "su -l gitea -c 'GITEA_WORK_DIR=/var/lib/gitea gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/gitea/runner_token" 149 + ) 150 + server.succeed("${serverSystem}/specialisation/runner/bin/switch-to-configuration test") 151 + server.wait_for_unit("gitea-runner-test.service") 152 + server.succeed("journalctl -o cat -u gitea-runner-test.service | grep -q 'Runner registered successfully'") 153 ''; 154 }); 155 in