nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 72 lines 2.6 kB view raw
1{ pkgs, ... }: 2{ 3 name = "renovate"; 4 meta.maintainers = with pkgs.lib.maintainers; [ 5 marie 6 natsukium 7 ]; 8 9 nodes.machine = 10 { config, ... }: 11 { 12 services.renovate = { 13 enable = true; 14 settings = { 15 platform = "gitea"; 16 endpoint = "http://localhost:3000"; 17 autodiscover = true; 18 gitAuthor = "Renovate <renovate@example.com>"; 19 }; 20 credentials = { 21 RENOVATE_TOKEN = "/etc/renovate-token"; 22 }; 23 }; 24 environment.systemPackages = [ 25 config.services.forgejo.package 26 pkgs.tea 27 pkgs.git 28 ]; 29 services.forgejo = { 30 enable = true; 31 settings.server.HTTP_PORT = 3000; 32 }; 33 # Uncomment the next line to lint service scripts (Note: breaks VM startup; see #373166) 34 #systemd.enableStrictShellChecks = true; 35 }; 36 37 testScript = '' 38 def gitea(command): 39 return machine.succeed(f"cd /var/lib/forgejo && sudo --user=forgejo GITEA_WORK_DIR=/var/lib/forgejo GITEA_CUSTOM=/var/lib/forgejo/custom gitea {command}") 40 41 machine.wait_for_unit("forgejo.service") 42 machine.wait_for_open_port(3000) 43 44 machine.systemctl("stop forgejo.service") 45 46 gitea("admin user create --username meow --email meow@example.com --password meow") 47 48 machine.systemctl("start forgejo.service") 49 machine.wait_for_unit("forgejo.service") 50 machine.wait_for_open_port(3000) 51 52 accessToken = gitea("admin user generate-access-token --raw --username meow --scopes all | tr -d '\n'") 53 54 machine.succeed(f"tea login add --name default --user meow --token '{accessToken}' --password meow --url http://localhost:3000") 55 machine.succeed("tea repo create --name kitty --init") 56 machine.succeed("git config --global user.name Meow") 57 machine.succeed("git config --global user.email meow@example.com") 58 machine.succeed(f"git clone http://meow:{accessToken}@localhost:3000/meow/kitty.git /tmp/kitty") 59 machine.succeed("echo '{ \"name\": \"meow\", \"version\": \"0.1.0\" }' > /tmp/kitty/package.json") 60 machine.succeed("git -C /tmp/kitty add /tmp/kitty/package.json") 61 machine.succeed("git -C /tmp/kitty commit -m 'add package.json'") 62 machine.succeed("git -C /tmp/kitty push origin") 63 64 machine.succeed(f"echo '{accessToken}' > /etc/renovate-token") 65 machine.systemctl("start --wait renovate.service") 66 67 machine.succeed("tea pulls list --repo meow/kitty | grep 'Configure Renovate'") 68 machine.succeed("tea pulls merge --repo meow/kitty 1") 69 70 machine.systemctl("start --wait renovate.service") 71 ''; 72}