chore: skip building multi-arch installer for race-enabled build
Go cross-compilation is not quite compatible with Go race detector, as C toolchain is not cross-compilation ready. Workaround is really simple: for race-enabled builds, don't build multi-arch installer image (that is installer image which contains both amd64 and arm64 Talos artifacts), but build installer artifacts only for the target arch (skipping cross-compilation). Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This commit is contained in:
parent
73fbb4b523
commit
046b229b13
23
Dockerfile
23
Dockerfile
@ -6,6 +6,7 @@ ARG TOOLS
|
||||
ARG IMPORTVET
|
||||
ARG PKGS
|
||||
ARG EXTRAS
|
||||
ARG INSTALLER_ARCH
|
||||
|
||||
# Resolve package images using ${PKGS} to be used later in COPY --from=.
|
||||
|
||||
@ -466,20 +467,30 @@ RUN chmod +x /installer
|
||||
FROM alpine:3.13.5 AS unicode-pf2
|
||||
RUN apk add --no-cache --update grub
|
||||
|
||||
FROM scratch AS install-artifacts
|
||||
FROM scratch AS install-artifacts-amd64
|
||||
COPY --from=pkg-grub-amd64 /usr/lib/grub /usr/lib/grub
|
||||
COPY --from=pkg-grub-arm64 /usr/lib/grub /usr/lib/grub
|
||||
COPY --from=pkg-grub / /
|
||||
COPY --from=unicode-pf2 /usr/share/grub/unicode.pf2 /usr/share/grub/unicode.pf2
|
||||
COPY --from=pkg-kernel-amd64 /boot/vmlinuz /usr/install/amd64/vmlinuz
|
||||
COPY --from=pkg-kernel-arm64 /boot/vmlinuz /usr/install/arm64/vmlinuz
|
||||
COPY --from=pkg-kernel-amd64 /dtb /usr/install/amd64/dtb
|
||||
COPY --from=pkg-kernel-arm64 /dtb /usr/install/arm64/dtb
|
||||
COPY --from=initramfs-archive-amd64 /initramfs.xz /usr/install/amd64/initramfs.xz
|
||||
|
||||
FROM scratch AS install-artifacts-arm64
|
||||
COPY --from=pkg-grub-arm64 /usr/lib/grub /usr/lib/grub
|
||||
COPY --from=pkg-kernel-arm64 /boot/vmlinuz /usr/install/arm64/vmlinuz
|
||||
COPY --from=pkg-kernel-arm64 /dtb /usr/install/arm64/dtb
|
||||
COPY --from=initramfs-archive-arm64 /initramfs.xz /usr/install/arm64/initramfs.xz
|
||||
COPY --from=pkg-u-boot-arm64 / /usr/install/arm64/u-boot
|
||||
COPY --from=pkg-raspberrypi-firmware-arm64 / /usr/install/arm64/raspberrypi-firmware
|
||||
|
||||
FROM scratch AS install-artifacts-all
|
||||
COPY --from=install-artifacts-amd64 / /
|
||||
COPY --from=install-artifacts-arm64 / /
|
||||
|
||||
FROM install-artifacts-${TARGETARCH} AS install-artifacts-targetarch
|
||||
|
||||
FROM install-artifacts-${INSTALLER_ARCH} AS install-artifacts
|
||||
COPY --from=pkg-grub / /
|
||||
COPY --from=unicode-pf2 /usr/share/grub/unicode.pf2 /usr/share/grub/unicode.pf2
|
||||
|
||||
FROM alpine:3.13.5 AS installer
|
||||
RUN apk add --no-cache --update \
|
||||
bash \
|
||||
|
3
Makefile
3
Makefile
@ -30,6 +30,7 @@ TESTPKGS ?= github.com/talos-systems/talos/...
|
||||
RELEASES ?= v0.9.3 v0.10.1
|
||||
SHORT_INTEGRATION_TEST ?=
|
||||
CUSTOM_CNI_URL ?=
|
||||
INSTALLER_ARCH ?= all
|
||||
|
||||
VERSION_PKG = github.com/talos-systems/talos/pkg/version
|
||||
IMAGES_PKGS = github.com/talos-systems/talos/pkg/images
|
||||
@ -54,6 +55,7 @@ ifneq (, $(filter $(WITH_RACE), t true TRUE y yes 1))
|
||||
CGO_ENABLED = 1
|
||||
GO_BUILDFLAGS += -race
|
||||
GO_LDFLAGS += -linkmode=external -extldflags '-static'
|
||||
INSTALLER_ARCH = targetarch
|
||||
endif
|
||||
|
||||
ifneq (, $(filter $(WITH_DEBUG), t true TRUE y yes 1))
|
||||
@ -81,6 +83,7 @@ COMMON_ARGS += --build-arg=TAG=$(TAG)
|
||||
COMMON_ARGS += --build-arg=ARTIFACTS=$(ARTIFACTS)
|
||||
COMMON_ARGS += --build-arg=IMPORTVET=$(IMPORTVET)
|
||||
COMMON_ARGS += --build-arg=TESTPKGS=$(TESTPKGS)
|
||||
COMMON_ARGS += --build-arg=INSTALLER_ARCH=$(INSTALLER_ARCH)
|
||||
COMMON_ARGS += --build-arg=CGO_ENABLED=$(CGO_ENABLED)
|
||||
COMMON_ARGS += --build-arg=GO_BUILDFLAGS="$(GO_BUILDFLAGS)"
|
||||
COMMON_ARGS += --build-arg=GO_LDFLAGS="$(GO_LDFLAGS)"
|
||||
|
Loading…
Reference in New Issue
Block a user