1
0
mirror of https://github.com/moby/buildkit.git synced 2025-04-18 18:04:03 +03:00
buildkit/docker-bake.hcl
CrazyMax 73069bdd4f
update bake-action to v6
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 13:42:34 +01:00

354 lines
7.7 KiB
HCL

variable "ALPINE_VERSION" {
default = null
}
variable "GO_VERSION" {
default = null
}
variable "NODE_VERSION" {
default = null
}
variable "BUILDKITD_TAGS" {
default = null
}
variable "HTTP_PROXY" {
default = null
}
variable "HTTPS_PROXY" {
default = null
}
variable "NO_PROXY" {
default = null
}
variable "GOBUILDFLAGS" {
default = null
}
variable "VERIFYFLAGS" {
default = null
}
variable "CGO_ENABLED" {
default = null
}
variable "GOLANGCI_LINT_MULTIPLATFORM" {
default = null
}
# Defines the output folder
variable "DESTDIR" {
default = ""
}
variable "TEST_COVERAGE" {
default = null
}
variable "TEST_IMAGE_NAME" {
default = "buildkit-tests"
}
variable "TEST_CONTEXT" {
default = "."
description = "Context for building the test image"
}
variable "TEST_BINARIES_CONTEXT" {
default = TEST_CONTEXT
description = "Context for building the buildkitd for test image"
}
variable "BUILDKIT_SYNTAX" {
default = null
}
function "bindir" {
params = [defaultdir]
result = DESTDIR != "" ? DESTDIR : "./bin/${defaultdir}"
}
target "_common" {
args = {
ALPINE_VERSION = ALPINE_VERSION
GO_VERSION = GO_VERSION
NODE_VERSION = NODE_VERSION
BUILDKITD_TAGS = BUILDKITD_TAGS
HTTP_PROXY = HTTP_PROXY
HTTPS_PROXY = HTTPS_PROXY
NO_PROXY = NO_PROXY
GOBUILDFLAGS = GOBUILDFLAGS
VERIFYFLAGS = VERIFYFLAGS
CGO_ENABLED = CGO_ENABLED
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}
group "default" {
targets = ["binaries"]
}
target "binaries" {
inherits = ["_common"]
target = "binaries"
output = [bindir("build")]
}
target "binaries-cross" {
inherits = ["binaries"]
output = [bindir("cross")]
platforms = [
"darwin/amd64",
"darwin/arm64",
"linux/amd64",
"linux/arm/v7",
"linux/arm64",
"linux/s390x",
"linux/ppc64le",
"linux/riscv64",
"windows/amd64",
"windows/arm64"
]
}
target "binaries-for-test" {
inherits = ["_common"]
target = "binaries-for-test"
output = [bindir("build")]
}
target "release" {
inherits = ["binaries-cross"]
target = "release"
output = [bindir("release")]
}
target "integration-tests-base" {
inherits = ["_common"]
target = "integration-tests-base"
output = ["type=cacheonly"]
}
target "integration-tests-binaries" {
inherits = ["_common"]
target = "binaries"
context = TEST_BINARIES_CONTEXT
}
target "integration-tests" {
inherits = ["integration-tests-base"]
target = "integration-tests"
context = TEST_CONTEXT
contexts = TEST_CONTEXT != TEST_BINARIES_CONTEXT ? {
"binaries" = "target:integration-tests-binaries"
} : null
args = {
GOBUILDFLAGS = TEST_COVERAGE == "1" ? "-cover" : null
BUILDKIT_SYNTAX = BUILDKIT_SYNTAX
}
output = [
"type=docker,name=${TEST_IMAGE_NAME}",
]
}
group "validate" {
targets = ["lint", "validate-vendor", "validate-doctoc", "validate-dockerfile", "validate-generated-files", "validate-archutil", "validate-shfmt", "validate-docs", "validate-docs-dockerfile"]
}
target "lint" {
name = "lint-${buildtags.name}"
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/lint.Dockerfile"
output = ["type=cacheonly"]
target = buildtags.target
args = {
TARGETNAME = buildtags.name
BUILDTAGS = buildtags.tags
}
platforms = ( buildtags.target == "golangci-lint" || buildtags.name == "gopls" ) && GOLANGCI_LINT_MULTIPLATFORM != null ? [
"freebsd/amd64",
"linux/amd64",
"linux/arm64",
"linux/s390x",
"linux/ppc64le",
"linux/riscv64",
"windows/amd64",
"windows/arm64"
] : []
matrix = {
buildtags = [
{ name = "default", tags = "", target = "golangci-lint" },
{ name = "labs", tags = "dfrunsecurity dfparents dfexcludepatterns", target = "golangci-lint" },
{ name = "nydus", tags = "nydus", target = "golangci-lint" },
{ name = "yaml", tags = "", target = "yamllint" },
{ name = "golangci-verify", tags = "", target = "golangci-verify" },
{ name = "proto", tags = "", target = "protolint" },
{ name = "gopls", tags = "", target = "gopls-analyze" }
]
}
}
target "validate-vendor" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/vendor.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-generated-files" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/generated-files.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-archutil" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/archutil.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-shfmt" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/shfmt.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-doctoc" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/doctoc.Dockerfile"
target = "validate-toc"
output = ["type=cacheonly"]
}
target "validate-authors" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/authors.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-docs" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/docs.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-docs-dockerfile" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/docs-dockerfile.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "validate-dockerfile" {
matrix = {
dockerfile = [
"Dockerfile",
"./hack/dockerfiles/archutil.Dockerfile",
"./hack/dockerfiles/authors.Dockerfile",
"./hack/dockerfiles/docs-dockerfile.Dockerfile",
"./hack/dockerfiles/docs.Dockerfile",
"./hack/dockerfiles/doctoc.Dockerfile",
"./hack/dockerfiles/generated-files.Dockerfile",
"./hack/dockerfiles/govulncheck.Dockerfile",
"./hack/dockerfiles/lint.Dockerfile",
"./hack/dockerfiles/shfmt.Dockerfile",
"./hack/dockerfiles/vendor.Dockerfile",
"./frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile",
]
}
name = "validate-dockerfile-${md5(dockerfile)}"
inherits = ["_common"]
dockerfile = dockerfile
call = "check"
}
target "vendor" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/vendor.Dockerfile"
target = "update"
output = ["."]
}
target "generated-files" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/generated-files.Dockerfile"
target = "update"
output = ["."]
}
target "archutil" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/archutil.Dockerfile"
target = "update"
output = ["./util/archutil"]
}
target "shfmt" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/shfmt.Dockerfile"
target = "update"
output = ["."]
}
target "doctoc" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/doctoc.Dockerfile"
target = "update"
output = ["."]
}
target "authors" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/authors.Dockerfile"
target = "update"
output = ["."]
}
target "docs" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/docs.Dockerfile"
target = "update"
output = ["./docs"]
}
target "docs-dockerfile" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/docs-dockerfile.Dockerfile"
target = "update"
output = ["./frontend/dockerfile/docs/rules"]
}
target "mod-outdated" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/vendor.Dockerfile"
target = "outdated"
no-cache-filter = ["outdated"]
output = ["type=cacheonly"]
}
variable "GOVULNCHECK_FORMAT" {
default = null
}
target "govulncheck" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/govulncheck.Dockerfile"
target = "output"
args = {
FORMAT = GOVULNCHECK_FORMAT
}
no-cache-filter = ["run"]
output = ["${DESTDIR}"]
}