constellation/hack/pseudo-version/BUILD.bazel
Malte Poll eb11e9ac8a
bazel: download pseudo-version tool instead of "go build" (#1629)
Required for bootstrapping bazel stamping since we cannot use "bazel build" during the workspace_status command.
Adds a small script that builds the pseudo-version tool in bazel (without stamping) and uploads it to the mirror.
On the first bazel build with stamping, the pseudo-version tool is downloaded.
2023-04-12 17:41:13 +02:00

56 lines
1.4 KiB
Python

load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_cross_binary", "go_library")
load("//bazel/sh:def.bzl", "sh_template")
platforms = [
"darwin_amd64",
"darwin_arm64",
"linux_amd64",
"linux_arm64",
]
go_library(
name = "pseudo-version_lib",
srcs = ["pseudo-version.go"],
importpath = "github.com/edgelesssys/constellation/v2/hack/pseudo-version",
visibility = ["//visibility:private"],
deps = [
"//hack/pseudo-version/internal/git",
"//internal/logger",
"@org_golang_x_mod//module",
"@org_uber_go_zap//:zap",
"@org_uber_go_zap//zapcore",
],
)
go_binary(
name = "pseudo-version",
embed = [":pseudo-version_lib"],
# keep
pure = "on",
visibility = ["//visibility:public"],
)
[
go_cross_binary(
name = "pseudo_version_%s" % platform,
platform = "@io_bazel_rules_go//go/toolchain:" + platform,
target = ":pseudo-version",
visibility = ["//visibility:public"],
)
for platform in platforms
]
sh_template(
name = "pseudo_version_tool_freshness",
data = [
":pseudo_version_" + platform
for platform in platforms
],
substitutions = {
"@@PSEUDO_VERSION_%s@@" % platform: "$(rootpath :pseudo_version_%s)" % platform
for platform in platforms
},
template = "pseudo_version_tool_freshness.sh.in",
visibility = ["//visibility:public"],
)