2 supportedSystems ? [ builtins.currentSystem ]
5 nginxRoot = "/run/nginx";
6 obelisk = import ./default.nix {};
7 # Get NixOS a pre-release 20.03 that contains the python based tests and recursive nix
8 pkgs = import (builtins.fetchTarball https://github.com/nixos/nixpkgs/archive/3de5266.tar.gz) {};
9 sshKeys = import (pkgs.path + /nixos/tests/ssh-keys.nix) pkgs;
10 make-test = import (pkgs.path + /nixos/tests/make-test-python.nix);
11 obelisk-everywhere = (import ./all-builds.nix { inherit supportedSystems; }).x86_64-linux.cache;
12 snakeOilPrivateKey = sshKeys.snakeOilPrivateKey.text;
13 snakeOilPublicKey = sshKeys.snakeOilPublicKey;
19 networking.firewall.allowedTCPPorts = [ 22 80 ];
23 environment.systemPackages = [
26 users.users.root.openssh.authorizedKeys.keys = [
33 (pkgs.path + /nixos/modules/installer/cd-dvd/channel.nix)
35 nix.useSandbox = false;
36 nix.binaryCaches = [];
37 environment.systemPackages = [
48 privateKeyFile = pkgs.writeText "id_rsa" ''${snakeOilPrivateKey}'';
49 sshConfigFile = pkgs.writeText "ssh_config" ''
51 StrictHostKeyChecking no
52 UserKnownHostsFile=/dev/null
55 IdentityFile=~/.ssh/id_rsa
60 githost.wait_for_open_port("22")
62 with subtest("test obelisk is installed"):
63 client.succeed("ob --help")
65 with subtest("test the client can access the server via ssh"):
66 client.succeed("mkdir -p ~/.ssh/")
68 "cp ${privateKeyFile} ~/.ssh/id_rsa"
70 client.succeed("chmod 600 ~/.ssh/id_rsa")
71 client.wait_until_succeeds(
72 "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa githost true"
75 "cp ${sshConfigFile} ~/.ssh/config"
77 client.wait_until_succeeds("ssh githost true")
79 with subtest("test a remote bare repo can be started"):
80 githost.succeed("mkdir -p ~/myorg/myapp.git")
81 githost.succeed("cd ~/myorg/myapp.git && git init --bare")
83 with subtest("test a git project can be configured with a remote using ssh"):
84 client.succeed("mkdir -p ~/code/myapp")
85 client.succeed("cd ~/code/myapp && git init")
86 client.succeed("cd ~/code/myapp && touch README")
87 client.succeed("cd ~/code/myapp && git add .")
88 client.succeed('git config --global user.email "you@example.com"')
89 client.succeed('git config --global user.name "Your Name"')
90 client.succeed('cd ~/code/myapp && git commit -m "Initial"')
92 "cd ~/code/myapp && git remote add origin root@githost:/root/myorg/myapp.git"
95 with subtest("test pushing code to the remote"):
96 client.succeed("cd ~/code/myapp && git push -u origin master")
97 client.succeed("cd ~/code/myapp && git status")
99 with subtest("test obelisk can pack"):
100 client.succeed("ob thunk pack ~/code/myapp")
101 client.succeed("grep -qF 'git' ~/code/myapp/default.nix")
102 client.succeed("grep -qF 'myorg' ~/code/myapp/git.json")
104 with subtest("test obelisk can detect private repos"):
105 client.succeed("""grep -qF '"private": false' ~/code/myapp/git.json""")
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list