about summary refs log tree commit diff
path: root/ops/pipelines/static-pipeline.yaml
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-12-10T08·01+0300
committerVincent Ambo <mail@tazj.in>2021-12-10T08·01+0300
commitfc14c21bb91cb59956367dac17e59494911189fd (patch)
tree5e268c579c7251f9beca0820c0292c6ca77a04bd /ops/pipelines/static-pipeline.yaml
parente4231c9816dc532b4d4eb0c9e8d7e8e347d0ebe4 (diff)
fix(ops/pipelines): Move :anchor: to static pipeline r/3178
This step would get inserted at the wrong point in the build pipeline
otherwise, causing a dependency cycle and causing the pipeline to fail.

Change-Id: I534568eec77f74ae6c47276820f8a9e99493a3ea
Diffstat (limited to 'ops/pipelines/static-pipeline.yaml')
-rw-r--r--ops/pipelines/static-pipeline.yaml18
1 files changed, 18 insertions, 0 deletions
diff --git a/ops/pipelines/static-pipeline.yaml b/ops/pipelines/static-pipeline.yaml
index 2c7767820b..388cf92315 100644
--- a/ops/pipelines/static-pipeline.yaml
+++ b/ops/pipelines/static-pipeline.yaml
@@ -46,6 +46,24 @@ steps:
         exit 1
       fi
 
+  # After duck, on success, create a gcroot if the build branch is
+  # canon.
+  #
+  # We care that this anchors *most* of the depot, in practice it's
+  # unimportant if there is a build race and we get +-1 of the
+  # targets.
+  #
+  # Unfortunately this requires a third evaluation of the graph, but
+  # since it happens after :duck: it should not affect the timing of
+  # status reporting back to Gerrit.
+  - label: ":anchor:"
+    if: "build.branch == 'refs/heads/canon'"
+    command: |
+      nix-instantiate -A ci.gcroot --add-root /nix/var/nix/gcroots/depot/canon
+    depends_on:
+      - step: ":duck:"
+        allow_failure: false
+
   # Create a revision number for the current commit for builds on
   # canon.
   #