about summary refs log tree commit diff
path: root/ops/deploy-whitby/default.nix
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-05-23T16·34+0200
committergrfn <grfn@gws.fyi>2021-09-10T16·13+0000
commit9c038cbff09b600d6b3be32c6c9b1a4cd6779ec2 (patch)
tree7f08954bd11a54e3b476fd7d901d6cd7743ae4e0 /ops/deploy-whitby/default.nix
parent79b39bb66e39bc1e00e4ceca75f32412e5f4f0de (diff)
feat(ops/deploy-whitby): Add the start of a script to deploy whitby r/2838
Add the beginnings of an auto-deploy script for whitby, intended to
be (eventually) suitable for running automatically in a systemd timer.
The current iteration of the script doesn't actually do any deploying,
but instead takes as an argument a revision, creates a new git worktree
in /tmp with that revision checked out, runs a nix-diff of whitby's
system derivation in the running system and at that closure, puts an
html-rendered version of that diff in the public directory used by
deploy.tvl.fyi, and finally sends a message to IRC via irccat with a
link to that HTML page.

Refs: b/110
Change-Id: Id40525567f8845590c909568befd8d00c07a481c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3145
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: kn <klemens@posteo.de>
Diffstat (limited to 'ops/deploy-whitby/default.nix')
-rw-r--r--ops/deploy-whitby/default.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/ops/deploy-whitby/default.nix b/ops/deploy-whitby/default.nix
new file mode 100644
index 000000000000..640f8ecfd23a
--- /dev/null
+++ b/ops/deploy-whitby/default.nix
@@ -0,0 +1,30 @@
+{ pkgs, ... }:
+
+pkgs.stdenv.mkDerivation {
+  name = "deploy-whitby";
+
+  phases = [ "installPhase" "installCheckPhase" ];
+
+  nativeBuildInputs = with pkgs; [
+    makeWrapper
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${./deploy-whitby.sh} $out/bin/deploy-whitby.sh \
+      --prefix PATH : ${with pkgs; lib.makeBinPath [
+        nix-diff
+        ansi2html
+        git
+      ]}
+  '';
+
+  installCheckInputs = with pkgs; [
+    shellcheck
+  ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    shellcheck $out/bin/deploy-whitby.sh
+  '';
+}