about summary refs log tree commit diff
path: root/ops/pipelines
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-01-19T15·01+0300
committerclbot <clbot@tvl.fyi>2022-01-19T17·22+0000
commit0652ac0ace548ba6ea4b6b78fc7bbfee277ec5d0 (patch)
tree404e444433224e7e12f2d6020ec839d7fce08c85 /ops/pipelines
parentc2e6c0719c68171a6d4902893ffb09aa8002b183 (diff)
refactor(nix/buildkite): Move fetch-parent-targets script here r/3637
This is no longer TVL-specific and should live here with the other
generalised stuff.

Change-Id: I95a1b4c0321f34812162d6fd40568269abf639dd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5006
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: ezemtsov <eugene.zemtsov@gmail.com>
Diffstat (limited to 'ops/pipelines')
-rwxr-xr-xops/pipelines/fetch-parent-targets.sh41
-rw-r--r--ops/pipelines/static-pipeline.yaml2
2 files changed, 1 insertions, 42 deletions
diff --git a/ops/pipelines/fetch-parent-targets.sh b/ops/pipelines/fetch-parent-targets.sh
deleted file mode 100755
index d34a826279..0000000000
--- a/ops/pipelines/fetch-parent-targets.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-set -ueo pipefail
-
-# Each Buildkite build stores the derivation target map as a pipeline
-# artifact. This script determines the most appropriate commit (the
-# fork point of the current chain from HEAD) and fetches the artifact.
-#
-# New builds can be based on HEAD before the pipeline for the last
-# commit has finished, in which case it is possible that the fork
-# point has no derivation map. To account for this, up to 3 commits
-# prior to HEAD are also queried to find a map.
-#
-# If no map is found, the failure mode is not critical: We simply
-# build all targets.
-
-: ${DRVMAP_PATH:=pipeline/drvmap.json}
-
-function most_relevant_builds {
-    git fetch -v origin "${BUILDKITE_PIPELINE_DEFAULT_BRANCH}"
-    local FIRST=$(git merge-base --fork-point HEAD FETCH_HEAD)
-    local SECOND=$(git rev-parse "$FIRST~1")
-    local THIRD=$(git rev-parse "$FIRST~2")
-
-    curl 'https://graphql.buildkite.com/v1' \
-         --silent \
-         -H "Authorization: Bearer $(cat /run/agenix/buildkite-graphql-token)" \
-         -d "{\"query\": \"query { pipeline(slug: \\\"$BUILDKITE_ORGANIZATION_SLUG/$BUILDKITE_PIPELINE_SLUG\\\") { builds(commit: [\\\"$FIRST\\\",\\\"$SECOND\\\",\\\"$THIRD\\\"]) { edges { node { uuid }}}}}\"}" | \
-         jq -r '.data.pipeline.builds.edges[] | .node.uuid'
-}
-
-mkdir -p tmp
-for build in $(most_relevant_builds); do
-    echo "Checking artifacts for build $build"
-    buildkite-agent artifact download --build "${build}" "${DRVMAP_PATH}" 'tmp/' || true
-
-    if [[ -f "tmp/${DRVMAP_PATH}" ]]; then
-        echo "Fetched target map from build ${build}"
-        mv "tmp/${DRVMAP_PATH}" tmp/parent-target-map.json
-        break
-    fi
-done
diff --git a/ops/pipelines/static-pipeline.yaml b/ops/pipelines/static-pipeline.yaml
index ffdb6a75c5..a4c3cf87ae 100644
--- a/ops/pipelines/static-pipeline.yaml
+++ b/ops/pipelines/static-pipeline.yaml
@@ -18,7 +18,7 @@ steps:
       # Attempt to fetch a target map from a parent commit on canon,
       # except on builds of canon itself.
       [ "${BUILDKITE_BRANCH}" != "refs/heads/canon" ] && \
-        ops/pipelines/fetch-parent-targets.sh
+        nix/buildkite/fetch-parent-targets.sh
 
       PIPELINE_ARGS=""
       if [[ -f tmp/parent-target-map.json ]]; then