Include shim in individual released binaries.
The debian rules are also moved to the top-level, since they apply to binaries outside the //runsc directory. Fixes #3665 PiperOrigin-RevId: 328379709
This commit is contained in:
parent
b0c53f8475
commit
3b2e50f539
8
Makefile
8
Makefile
|
@ -114,7 +114,7 @@ runsc: ## Builds the runsc binary.
|
|||
.PHONY: runsc
|
||||
|
||||
debian: ## Builds the debian packages.
|
||||
@$(call submake,build OPTIONS="-c opt" TARGETS="//runsc:runsc-debian")
|
||||
@$(call submake,build OPTIONS="-c opt" TARGETS="//debian:debian")
|
||||
.PHONY: debian
|
||||
|
||||
smoke-tests: ## Runs a simple smoke test after build runsc.
|
||||
|
@ -301,8 +301,10 @@ $(RELEASE_KEY):
|
|||
release: $(RELEASE_KEY) ## Builds a release.
|
||||
@mkdir -p $(RELEASE_ROOT)
|
||||
@T=$$(mktemp -d /tmp/release.XXXXXX); \
|
||||
$(call submake,copy TARGETS="runsc" DESTINATION=$$T) && \
|
||||
$(call submake,copy TARGETS="runsc:runsc-debian" DESTINATION=$$T) && \
|
||||
$(call submake,copy TARGETS="//runsc:runsc" DESTINATION=$$T) && \
|
||||
$(call submake,copy TARGETS="//shim/v1:gvisor-containerd-shim" DESTINATION=$$T) && \
|
||||
$(call submake,copy TARGETS="//shim/v2:containerd-shim-runsc-v1" DESTINATION=$$T) && \
|
||||
$(call submake,copy TARGETS="//debian:debian" DESTINATION=$$T) && \
|
||||
NIGHTLY=$(RELEASE_NIGHTLY) tools/make_release.sh $(RELEASE_KEY) $(RELEASE_ROOT) $$T/*; \
|
||||
rc=$$?; rm -rf $$T; exit $$rc
|
||||
.PHONY: release
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
load("//tools:defs.bzl", "pkg_deb", "pkg_tar")
|
||||
|
||||
package(licenses = ["notice"])
|
||||
|
||||
pkg_tar(
|
||||
name = "debian-bin",
|
||||
srcs = [
|
||||
"//runsc",
|
||||
"//shim/v1:gvisor-containerd-shim",
|
||||
"//shim/v2:containerd-shim-runsc-v1",
|
||||
],
|
||||
mode = "0755",
|
||||
package_dir = "/usr/bin",
|
||||
)
|
||||
|
||||
pkg_tar(
|
||||
name = "debian-data",
|
||||
extension = "tar.gz",
|
||||
deps = [
|
||||
":debian-bin",
|
||||
"//shim:config",
|
||||
],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "debian-version",
|
||||
# Note that runsc must appear in the srcs parameter and not the tools
|
||||
# parameter, otherwise it will not be stamped. This is reasonable, as tools
|
||||
# may be encoded differently in the build graph (cached more aggressively
|
||||
# because they are assumes to be hermetic).
|
||||
srcs = ["//runsc"],
|
||||
outs = ["version.txt"],
|
||||
# Note that the little dance here is necessary because files in the $(SRCS)
|
||||
# attribute are not executable by default, and we can't touch in place.
|
||||
cmd = "cp $(location //runsc:runsc) $(@D)/runsc && \
|
||||
chmod a+x $(@D)/runsc && \
|
||||
$(@D)/runsc -version | grep version | sed 's/^[^0-9]*//' > $@ && \
|
||||
rm -f $(@D)/runsc",
|
||||
stamp = 1,
|
||||
)
|
||||
|
||||
pkg_deb(
|
||||
name = "debian",
|
||||
architecture = "amd64",
|
||||
data = ":debian-data",
|
||||
# Note that the description_file will be flatten (all newlines removed),
|
||||
# and therefore it is kept to a simple one-line description. The expected
|
||||
# format for debian packages is "short summary\nLonger explanation of
|
||||
# tool." and this is impossible with the flattening.
|
||||
description_file = "description",
|
||||
homepage = "https://gvisor.dev/",
|
||||
maintainer = "The gVisor Authors <gvisor-dev@googlegroups.com>",
|
||||
package = "runsc",
|
||||
postinst = "postinst.sh",
|
||||
version_file = ":version.txt",
|
||||
visibility = [
|
||||
"//visibility:public",
|
||||
],
|
||||
)
|
58
runsc/BUILD
58
runsc/BUILD
|
@ -1,4 +1,4 @@
|
|||
load("//tools:defs.bzl", "go_binary", "pkg_deb", "pkg_tar")
|
||||
load("//tools:defs.bzl", "go_binary")
|
||||
|
||||
package(licenses = ["notice"])
|
||||
|
||||
|
@ -61,62 +61,6 @@ go_binary(
|
|||
],
|
||||
)
|
||||
|
||||
pkg_tar(
|
||||
name = "debian-bin",
|
||||
srcs = [
|
||||
":runsc",
|
||||
"//shim/v1:gvisor-containerd-shim",
|
||||
"//shim/v2:containerd-shim-runsc-v1",
|
||||
],
|
||||
mode = "0755",
|
||||
package_dir = "/usr/bin",
|
||||
)
|
||||
|
||||
pkg_tar(
|
||||
name = "debian-data",
|
||||
extension = "tar.gz",
|
||||
deps = [
|
||||
":debian-bin",
|
||||
"//shim:config",
|
||||
],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "deb-version",
|
||||
# Note that runsc must appear in the srcs parameter and not the tools
|
||||
# parameter, otherwise it will not be stamped. This is reasonable, as tools
|
||||
# may be encoded differently in the build graph (cached more aggressively
|
||||
# because they are assumes to be hermetic).
|
||||
srcs = [":runsc"],
|
||||
outs = ["version.txt"],
|
||||
# Note that the little dance here is necessary because files in the $(SRCS)
|
||||
# attribute are not executable by default, and we can't touch in place.
|
||||
cmd = "cp $(location :runsc) $(@D)/runsc && \
|
||||
chmod a+x $(@D)/runsc && \
|
||||
$(@D)/runsc -version | grep version | sed 's/^[^0-9]*//' > $@ && \
|
||||
rm -f $(@D)/runsc",
|
||||
stamp = 1,
|
||||
)
|
||||
|
||||
pkg_deb(
|
||||
name = "runsc-debian",
|
||||
architecture = "amd64",
|
||||
data = ":debian-data",
|
||||
# Note that the description_file will be flatten (all newlines removed),
|
||||
# and therefore it is kept to a simple one-line description. The expected
|
||||
# format for debian packages is "short summary\nLonger explanation of
|
||||
# tool." and this is impossible with the flattening.
|
||||
description_file = "debian/description",
|
||||
homepage = "https://gvisor.dev/",
|
||||
maintainer = "The gVisor Authors <gvisor-dev@googlegroups.com>",
|
||||
package = "runsc",
|
||||
postinst = "debian/postinst.sh",
|
||||
version_file = ":version.txt",
|
||||
visibility = [
|
||||
"//visibility:public",
|
||||
],
|
||||
)
|
||||
|
||||
sh_test(
|
||||
name = "version_test",
|
||||
size = "small",
|
||||
|
|
|
@ -10,6 +10,6 @@ pkg_tar(
|
|||
mode = "0644",
|
||||
package_dir = "/etc/containerd",
|
||||
visibility = [
|
||||
"//runsc:__pkg__",
|
||||
"//visibility:public",
|
||||
],
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue