about summary refs log tree commit diff
path: root/ops/ci/pipeline.yml
diff options
context:
space:
mode:
Diffstat (limited to 'ops/ci/pipeline.yml')
-rw-r--r--ops/ci/pipeline.yml25
1 files changed, 25 insertions, 0 deletions
diff --git a/ops/ci/pipeline.yml b/ops/ci/pipeline.yml
new file mode 100644
index 0000000..4308f6a
--- /dev/null
+++ b/ops/ci/pipeline.yml
@@ -0,0 +1,25 @@
+env:
+  BUILDKITE_TOKEN_PATH: /run/agenix/buildkite/graphql
+steps:
+  - label: ":shell:"
+    command: "nix develop -c pre-commit run --all-files"
+
+  # wait for all previous steps to complete.
+  - wait: null
+    continue_on_failure: true
+
+  - label: ":hammer:"
+    command: |
+      set -ueo pipefail
+
+      readonly FAILED_JOBS=$(curl 'https://graphql.buildkite.com/v1' \
+        --silent \
+        -H "Authorization: Bearer $(cat ${BUILDKITE_TOKEN_PATH})" \
+        -d "{\"query\": \"query BuildStatusQuery { build(uuid: \\\"$BUILDKITE_BUILD_ID\\\") { jobs(passed: false) { count } } }\"}" | \
+        jq -r '.data.build.jobs.count')
+
+      echo "$$FAILED_JOBS build jobs failed."
+
+      if (( $$FAILED_JOBS > 0 )); then
+        exit 1
+      fi