feat(ops/pipelines): Add Buildkite pipeline configuration

This adds configuration which generates the structure expected for
Buildkite pipelines, which can then be dynamically ingested by
Buildkite when a pipeline is triggered.

Change-Id: I61e3dc3affb19c1f2550ef827fa73b17f8d8ae47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/627
Reviewed-by: ericvolp12 <ericvolp12@gmail.com>
Reviewed-by: lukegb <lukegb@tvl.fyi>
This commit is contained in:
Vincent Ambo 2020-06-27 17:14:58 +01:00 committed by tazjin
parent 7f703913ed
commit 22b8a49b87
3 changed files with 25 additions and 0 deletions

3
ops/pipelines/README.md Normal file
View file

@ -0,0 +1,3 @@
This folder contains various utilities used for our [Buildkite CI
setup][ci]. These are mostly hooks invoked by Buildkite runners, or
configuration used to set up the build pipelines.

21
ops/pipelines/depot.nix Normal file
View file

@ -0,0 +1,21 @@
# This file configures the primary build pipeline used for the
# top-level list of depot targets.
#
# It outputs a "YAML" (actually JSON) file which is evaluated and
# submitted to Buildkite at the start of each build. This means we can
# dynamically configure the pipeline execution here.
{ depot, pkgs, ... }:
let
inherit (builtins) toJSON;
inherit (pkgs) writeText;
# This defines the build pipeline, using the pipeline format
# documented on https://buildkite.com/docs/pipelines/defining-steps
pipeline.steps = [
{
command = "nix-build -A ciBuilds.__allTargets";
label = "all-targets";
}
];
in writeText "depot.yaml" (toJSON pipeline)

View file

@ -44,6 +44,7 @@ let
buildGoModule
buildGoPackage
buildPackages
buildkite-agent
bzip2
c-ares
cacert