Skip to content

Commit 9892874

Browse files
committed
build: add cross-tarball build target.
Add build target for building binary tarballs using a CentOS-7 container. The binaries from such tarballs are beleived to be generally usable across all of our currently supported distro versions.
1 parent 24370d6 commit 9892874

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

Makefile

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,14 @@ DOCKER_RPM_BUILD := \
147147
done && \
148148
cp -v $$(rpm --eval %{_rpmdir}/%{_arch})/*.rpm /output
149149

150+
# Docker boilerplate/commands to build binary tarballs.
151+
DOCKER_TAR_BUILD := \
152+
cd ~ && \
153+
$(GZIP_DC) /build/input/cri-resource-manager-$(TAR_VERSION).tar$(GZ_EXT) | \
154+
$(TAR) -xf - && \
155+
cd cri-resource-manager-$(TAR_VERSION) && \
156+
$(MAKE) OUTPUT=/output/ binary-dist
157+
150158
# Docker boilerplate/commands to build binaries.
151159
DOCKER_BIN_BUILD := \
152160
mkdir ~/build && cd ~/build && \
@@ -498,7 +506,7 @@ vendored-dist: dist
498506
rm -fr $$tardir
499507

500508
binary-dist: build
501-
$(Q)tarball=cri-resource-manager-$(TAR_VERSION).$$(uname -m).tar; \
509+
$(Q)tarball=$(OUTPUT)cri-resource-manager-$(TAR_VERSION).$$(uname -m).tar; \
502510
echo "Creating binary dist tarball $$tarball..."; \
503511
tardir=binary-dist; \
504512
rm -fr $$tarball* $$tardir && \
@@ -600,6 +608,20 @@ cross-bin.%: docker/cross-build/% dist
600608
$$distro-build /bin/bash -c '$(DOCKER_BIN_BUILD)' && \
601609
rm -fr $$builddir
602610

611+
cross-tar cross-tarball: dist docker/cross-build/centos-7
612+
$(Q)distro=tarball; \
613+
builddir=$(BUILD_DIR)/docker/$$distro; \
614+
outdir=$(PACKAGES_DIR)/$$distro; \
615+
echo "Docker cross-building $$distro packages..."; \
616+
mkdir -p $$outdir && \
617+
rm -fr $$builddir && mkdir -p $$builddir/{input,build} && \
618+
cp cri-resource-manager-$(TAR_VERSION).tar$(GZEXT) $$builddir/input && \
619+
$(DOCKER) run --rm -ti $(DOCKER_OPTIONS) --user $(shell echo $$USER) \
620+
--env USER_NAME="$(USER_NAME)" --env USER_EMAIL=$(USER_EMAIL) \
621+
-v $$(pwd)/$$builddir:/build \
622+
-v $$(pwd)/$$outdir:/output \
623+
centos-7-build /bin/bash -c '$(DOCKER_TAR_BUILD)' && \
624+
rm -fr $$builddir
603625

604626
# Build a docker image (for distro cross-building).
605627
docker/cross-build/%: dockerfiles/cross-build/Dockerfile.%

0 commit comments

Comments
 (0)