-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathorg.tf
81 lines (70 loc) · 2.42 KB
/
org.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
data "github_actions_organization_registration_token" "token" {
count = local.has_repos ? 0 : 1
}
locals {
org_command = join(" ", concat(
["${var.runner_basedir}/${var.github_owner}/config.sh --url ${var.github_base_url}/${var.github_owner}"],
["--token ${data.github_actions_organization_registration_token.token[0].token}"],
["--name ${var.github_owner}"],
["--unattended"],
["--work ${var.github_owner}"],
["--replace"],
["--labels ${join(",", concat(var.runner_labels, [var.github_owner]))}"],
var.runner_group != null ? ["--runnergroup ${github_actions_runner_group.rg[0].id}"] : []
))
org_working_dir = "${var.runner_basedir}/${var.github_owner}"
org_config_path = "${var.runner_basedir}/${var.github_owner}/config.sh"
}
resource "local_file" "org_supervisorctl" {
count = local.has_repos ? 0 : 1
filename = "${path.root}/supervisor/${var.github_owner}.conf"
content = templatefile("${path.module}/templates/supervisorctl.conf.tpl", {
command = "${local.org_working_dir}/run.sh"
directory = "${local.org_working_dir}"
runner = var.github_owner
autorestart = var.autorestart
})
}
resource "null_resource" "install_org_runner" {
count = local.has_repos ? 0 : 1
provisioner "local-exec" {
command = "mkdir -p ${local.org_working_dir}"
}
provisioner "local-exec" {
command = "tar vxzf ${var.runner_tarball} >/dev/null 2>/dev/null"
working_dir = local.org_working_dir
}
depends_on = [
local_file.org_supervisorctl
]
}
resource "local_file" "org_env" {
count = local.has_repos ? 0 : 1
content = templatefile(
"${path.module}/templates/env",
merge(var.env_vars, {
NODE_TLS_REJECT_UNAUTHORIZED = 0
LANG = "en_US.UTF-8"
}))
filename = "${local.org_working_dir}/.env"
}
resource "null_resource" "register_org_runner" {
count = local.has_repos ? 0 : 1
provisioner "local-exec" {
command = "rm .runner || echo 'No runner to remove'"
working_dir = local.org_working_dir
}
provisioner "local-exec" {
command = "${local.org_config_path} remove || echo 'No runner to remove'"
working_dir = local.org_working_dir
}
provisioner "local-exec" {
command = "${local.org_command} || echo 'Runner already exists'"
working_dir = local.org_working_dir
}
depends_on = [
local_file.org_supervisorctl,
null_resource.install_org_runner,
local_file.org_env
]
}