forked from coreos/tectonic-installer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BUILD.bazel
104 lines (88 loc) · 3.06 KB
/
BUILD.bazel
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package(
default_visibility = ["//visibility:public"],
)
template_files = glob([
"modules/**/*",
"platforms/**/*",
])
config_setting(
name = "darwin",
values = {"cpu": "darwin"},
visibility = ["//visibility:public"],
)
config_setting(
name = "linux",
values = {"cpu": "k8"}, # don't ask...
visibility = ["//visibility:public"],
)
genrule(
name = "terraform_runtime",
output_to_bindir = 1,
srcs = select({
"//:linux": ["@terraform_runtime_linux//:terraform"],
"//:darwin": ["@terraform_runtime_darwin//:terraform"],
}),
outs = ["bin/terraform"],
cmd = "cp $(<) $(@)",
)
genrule(
name = "provider_matchbox",
output_to_bindir = 1,
srcs = select({
"//:linux": ["@terraform_provider_matchbox_linux//:terraform-provider-matchbox"],
"//:darwin": ["@terraform_provider_matchbox_darwin//:terraform-provider-matchbox"],
}),
outs = ["bin/terraform-provider-matchbox"],
cmd = "cp $(<) $(@)",
)
PLATFORMS = ["aws", "azure", "gcp", "govcloud", "metal", "openstack", "vmware"]
[genrule(
name = "examples_" + platform,
message = "Compiling examples for " + platform + "...",
srcs = ["platforms/" + platform + "/variables.tf", "config.tf"],
outs = ["examples/terraform.tfvars." + platform],
cmd = "$(location //contrib/terraform-examples:terraform-examples) $(location :config.tf) $(location :platforms/" + platform + "/variables.tf) > $@",
tools = ["//contrib/terraform-examples:terraform-examples"],
) for platform in PLATFORMS]
# DOCS is a dict of tuples matching ["name": ("src", "out"), ...].
DOCS = {p: ("platforms/" + p + "/variables.tf", "Documentation/variables/" + p + ".md") for p in PLATFORMS}
DOCS["config"] = ("config.tf", "Documentation/variables/config.md")
[genrule(
name = "docs_" + doc[0],
message = "Compiling docs for " + doc[0] + "...",
srcs = [doc[1][0]],
outs = [doc[1][1]],
cmd = "echo '<!-- DO NOT EDIT. THIS FILE IS AUTOMATICALLY GENERATED. -->' > $@ && echo '# Terraform variables' >> $@ && $(location @com_github_segmentio_terraform-docs//:terraform-docs) --no-required markdown $(location :" + doc[1][0] + ") >> $@",
tools = ["@com_github_segmentio_terraform-docs//:terraform-docs"],
) for doc in DOCS.items()]
genrule(
name = "templates",
message = "Copying templates...",
output_to_bindir = 1,
srcs = template_files,
outs = ["templates/%s" % f for f in template_files],
cmd = '\n'.join([
"for tf_file in $(SRCS); do",
"target=\"$(@D)/templates/$$(dirname $${tf_file})\"",
"mkdir -p $${target}",
"cp $${tf_file} $${target}",
"done"
]),
)
load("@io_bazel_rules_go//go:def.bzl", "go_prefix")
go_prefix("github.com/coreos/tectonic-installer")
load("@bazel_gazelle//:def.bzl", "gazelle")
gazelle(
name = "gazelle",
command = "fix",
prefix = "github.com/coreos/tectonic-installer",
external = "vendored",
)
alias(
name = "smoke_tests",
actual = "//tests/smoke:smoke",
)
alias(
name = "backend",
actual = "//installer/cmd/installer:installer",
)