about summary refs log tree commit diff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/.skip-subtree2
-rw-r--r--views/README.md6
-rw-r--r--views/kit/README.md24
-rw-r--r--views/kit/buildkite.yml16
-rw-r--r--views/kit/default.nix31
-rw-r--r--views/kit/workspace.josh13
6 files changed, 92 insertions, 0 deletions
diff --git a/views/.skip-subtree b/views/.skip-subtree
new file mode 100644
index 000000000000..d33c73476b52
--- /dev/null
+++ b/views/.skip-subtree
@@ -0,0 +1,2 @@
+//views is not part of the depot build tree, see the README for more
+information.
diff --git a/views/README.md b/views/README.md
new file mode 100644
index 000000000000..83464d5ee21d
--- /dev/null
+++ b/views/README.md
@@ -0,0 +1,6 @@
+depot views
+===========
+
+This folder contains external views of depot content, defined using
+josh workspaces. See the individual views for a description of their
+content and usage information.
diff --git a/views/kit/README.md b/views/kit/README.md
new file mode 100644
index 000000000000..491a97c0c4ca
--- /dev/null
+++ b/views/kit/README.md
@@ -0,0 +1,24 @@
+The TVL Kit
+===========
+
+[![Build status](https://badge.buildkite.com/cd7240a881c7e77c3ed8cc040f81734623f57038563b37213d.svg?branch=canon)](https://buildkite.com/tvl/tvl-kit)
+
+This folder contains a publicly available version of the core TVL
+tooling, currently comprising of:
+
+* `buildkite`: TVL tooling for dynamically generating Buildkite
+  pipelines with Nix.
+* `buildGo`: Nix-based build system for Go.
+* `readTree`: Nix library to dynamically compute attribute trees
+  corresponding to the physical layout of a repository.
+* `besadii`: Configurable Gerrit/Buildkite integration hook.
+
+It can be accessed via git by cloning it as such:
+
+    git clone https://code.tvl.fyi/depot.git:workspace=views/kit.git tvl-kit
+
+If you are looking at this within the TVL depot, you can see the
+[josh][] configuration in `workspace.josh`. You will find the projects
+at slightly different paths within the depot.
+
+[josh]: https://github.com/josh-project/josh/
diff --git a/views/kit/buildkite.yml b/views/kit/buildkite.yml
new file mode 100644
index 000000000000..0bba63726db5
--- /dev/null
+++ b/views/kit/buildkite.yml
@@ -0,0 +1,16 @@
+# Build pipeline for the filtered //views/kit workspace of depot. This
+# pipeline is triggered by each build of canon.
+#
+# Pipeline status is visible on https://buildkite.com/tvl/tvl-kit
+
+steps:
+  - command: "nix-build --no-out-link -A besadii"
+    label: ":nix: besadii"
+
+  - command: "nix-build --no-out-link -A magrathea"
+    label: ":nix: magrathea"
+
+  - label: ":nix: lazy-deps"
+    command: |
+      nix-build -E 'with import ./. {}; lazy-deps { mg.attr = "magrathea"; }'
+      result/bin/mg
diff --git a/views/kit/default.nix b/views/kit/default.nix
new file mode 100644
index 000000000000..47c6088a46cf
--- /dev/null
+++ b/views/kit/default.nix
@@ -0,0 +1,31 @@
+# Externally importable TVL depot stack. This is intended to be called
+# with a supplied package set, otherwise the package set currently in
+# use by the TVL depot will be used.
+#
+# For now, readTree is not used inside of this configuration to keep
+# it simple. Adding it may be useful if we set up test scaffolding
+# around the exported workspace.
+
+{ pkgs ? (import ./nixpkgs {
+    depotOverlays = false;
+    depot.third_party.sources = import ./sources { };
+  })
+, ...
+}:
+
+pkgs.lib.fix (self: {
+  besadii = import ./besadii {
+    depot.nix.buildGo = self.buildGo;
+  };
+
+  buildGo = import ./buildGo { inherit pkgs; };
+
+  buildkite = import ./buildkite {
+    inherit pkgs;
+    depot.nix.readTree = self.readTree;
+  };
+
+  lazy-deps = import ./lazy-deps { inherit pkgs; };
+  magrathea = import ./magrathea { inherit pkgs; };
+  readTree = import ./readTree { };
+})
diff --git a/views/kit/workspace.josh b/views/kit/workspace.josh
new file mode 100644
index 000000000000..bdf55033977f
--- /dev/null
+++ b/views/kit/workspace.josh
@@ -0,0 +1,13 @@
+::LICENSE
+besadii = :/ops/besadii
+:/nix:[
+    ::buildGo/
+    ::buildkite/
+    ::lazy-deps/
+    ::readTree/
+]
+:/third_party:[
+    ::nixpkgs/
+    ::sources/
+]
+magrathea = :/tools/magrathea