aboutsummaryrefslogtreecommitdiff
path: root/app/drone-ci/deploy/runner-docker.hcl
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-05-31 11:59:20 +0200
committerAlex Auvolat <alex@adnab.me>2022-05-31 11:59:20 +0200
commit2130407a0f9968ae272677e4fe787732b5bdad94 (patch)
treef2b8d5b883966cb83cbe169f8c70696617c93aac /app/drone-ci/deploy/runner-docker.hcl
parent93c9e7d9aeb664a84720e70bd59f2125ba6c744d (diff)
downloadnixcfg-2130407a0f9968ae272677e4fe787732b5bdad94.tar.gz
nixcfg-2130407a0f9968ae272677e4fe787732b5bdad94.zip
Move back to using Docker runner
Diffstat (limited to 'app/drone-ci/deploy/runner-docker.hcl')
-rw-r--r--app/drone-ci/deploy/runner-docker.hcl91
1 files changed, 91 insertions, 0 deletions
diff --git a/app/drone-ci/deploy/runner-docker.hcl b/app/drone-ci/deploy/runner-docker.hcl
new file mode 100644
index 0000000..1f823bf
--- /dev/null
+++ b/app/drone-ci/deploy/runner-docker.hcl
@@ -0,0 +1,91 @@
+job "drone-runner" {
+ datacenters = ["neptune"]
+ type = "system"
+
+ group "runner" {
+
+ task "populate-nix-store" {
+ lifecycle {
+ hook = "prestart"
+ sidecar = false
+ }
+
+ driver = "docker"
+ config {
+ image = "nixpkgs/nix:nixos-21.05"
+ command = "sh"
+ args = [
+ "-c", "cp -rv /nix/{store,var} /mnt/"
+ ]
+ volumes = [
+ "/var/lib/drone/nix:/mnt",
+ ]
+ }
+
+ resources {
+ memory = 100
+ cpu = 100
+ }
+ }
+
+ task "drone-runner" {
+ driver = "docker"
+ config {
+ image = "drone/drone-runner-docker:1.8.1"
+
+ volumes = [
+ "/var/lib/drone/nix:/nix",
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ }
+
+ template {
+ data = <<EOH
+DRONE_RPC_PROTO=https
+DRONE_RPC_HOST=drone.deuxfleurs.fr
+DRONE_RPC_SECRET={{ key "secrets/drone-ci/rpc_secret" | trimSpace }}
+DRONE_RUNNER_CAPACITY=1
+DRONE_DEBUG=true
+DRONE_LOGS_TRACE=true
+DRONE_RPC_DUMP_HTTP=true
+DRONE_RPC_DUMP_HTTP_BODY=true
+DRONE_RUNNER_NAME={{ env "attr.unique.hostname" }}
+DRONE_RUNNER_LABELS=nix:1
+EOH
+ destination = "secrets/env"
+ env = true
+ }
+
+ resources {
+ memory = 200
+ cpu = 100
+ }
+ }
+
+ task "drone-gc" {
+ driver = "docker"
+ config {
+ image = "drone/gc:latest"
+
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ }
+
+ template {
+ data = <<EOH
+GC_DEBUG=true
+GC_CACHE=10gb
+GC_INTERVAL=10m
+EOH
+ destination = "secrets/env"
+ env = true
+ }
+
+ resources {
+ memory = 100
+ cpu = 100
+ }
+ }
+ }
+}