diff options
-rw-r--r-- | cluster/staging/app/ci/deploy/builder.hcl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/cluster/staging/app/ci/deploy/builder.hcl b/cluster/staging/app/ci/deploy/builder.hcl new file mode 100644 index 0000000..b19e23b --- /dev/null +++ b/cluster/staging/app/ci/deploy/builder.hcl @@ -0,0 +1,75 @@ +job "builder" { + namespace = "ci" + type = "batch" + + datacenters = ["neptune", "jupiter", "corrin", "bespin"] + priority = 100 + + parameterized { + payload = "forbidden" + meta_required = [ "REPO_URL", "COMMIT", "BRANCH" ] + } + + reschedule { + attempts = 0 + unlimited = false + } + + task "runner" { + driver = "docker" + config { + image = "nixpkgs/nix:nixos-22.11" + args = [ "/tmp/builder.sh" ] + volumes = [ + "local/builder.sh:/tmp/builder.sh", + "local/nix.conf:/etc/nix/nix.conf" + ] + } + + template { + data = <<EOH +#!/usr/bin/env bash +set -euxo pipefail + +mkdir /workspace +cd /workspace +git init +git remote add origin ${NOMAD_META_REPO_URL} +git fetch origin ${NOMAD_META_COMMIT} +git checkout ${NOMAD_META_COMMIT} -b ${NOMAD_META_BRANCH} +export COMMIT=${NOMAD_META_COMMIT} +export BRANCH=${NOMAD_META_BRANCH} +./build.sh + + EOH + destination = "local/builder.sh" + perms = "555" + } + + template { + data = <<EOH +substituters = https://cache.nixos.org https://nix.web.deuxfleurs.fr +trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix.web.deuxfleurs.fr:eTGL6kvaQn6cDR/F9lDYUIP9nCVR/kkshYfLDJf1yKs= +max-jobs = auto +cores = 0 +log-lines = 200 +filter-syscalls = false +sandbox = false +keep-outputs = true +keep-derivations = true + EOH + destination = "local/nix.conf" + } + + restart { + attempts = 0 + } + + resources { + cpu = 1000 + memory = 2000 + memory_max = 2500 + } + } +} + |