@@ -325,8 +325,11 @@ WORKDIR /src
325325FROM build AS build-go
326326COPY ./go.mod ./go.sum ./
327327COPY ./pkg/machinery/go.mod ./pkg/machinery/go.sum ./pkg/machinery/
328+ COPY ./tools ./tools
328329WORKDIR /src/pkg/machinery
329330RUN --mount=type=cache,target=/.cache,id=talos/.cache go mod download
331+ WORKDIR /src/tools
332+ RUN --mount=type=cache,target=/.cache,id=talos/.cache go mod download
330333WORKDIR /src
331334RUN --mount=type=cache,target=/.cache,id=talos/.cache go mod download
332335RUN --mount=type=cache,target=/.cache,id=talos/.cache go mod verify
@@ -505,6 +508,22 @@ WORKDIR /src
505508FROM base AS lint-vulncheck
506509RUN --mount=type=cache,target=/.cache,id=talos/.cache govulncheck ./...
507510
511+ # The lint-deadcode target runs the deadcode elimination check.
512+ FROM base AS lint-deadcode
513+ ARG GO_BUILDFLAGS
514+ ARG GO_LDFLAGS
515+ ARG GO_MACHINED_LDFLAGS
516+ ARG GOAMD64
517+ RUN --mount=type=cache,target=/.cache,id=talos/.cache GOOS=linux GOARCH=amd64 GOAMD64=${GOAMD64} go build ${GO_BUILDFLAGS} -ldflags "${GO_LDFLAGS} ${GO_MACHINED_LDFLAGS} -dumpdep" ./internal/app/machined \
518+ |& go tool -modfile=tools/go.mod github.com/aarzilli/whydeadcode > deadcode.txt
519+ RUN if [[ -s deadcode.txt ]]; then \
520+ echo "Dead code elimination problem found:" ; \
521+ cat deadcode.txt; \
522+ exit 1; \
523+ else \
524+ echo "No dead code elimination issues found" ; \
525+ fi
526+
508527# The init target builds the init binary.
509528
510529FROM base AS init-build-amd64
@@ -892,7 +911,6 @@ ARG NAME
892911ARG TAG
893912
894913COPY ./hack/sbom.sh /usr/bin/sbom.sh
895- COPY ./tools ./tools
896914
897915RUN mkdir -p /tmp/sbom-src /rootfs/usr/share/spdx
898916RUN cp go.mod go.sum /tmp/sbom-src/
@@ -953,7 +971,6 @@ COPY --from=vex-generate /talos.grype.yaml /talos.grype.yaml
953971FROM build-go AS grype-scan
954972COPY --from=sbom-arm64 /talos-arm64.spdx.json /talos-arm64.spdx.json
955973COPY --from=vex /talos.vex.json /talos.vex.json
956- COPY ./tools ./tools
957974RUN --mount=type=cache,target=/.cache,id=talos/.cache go tool -modfile=tools/go.mod \
958975 github.com/anchore/grype/cmd/grype sbom:/talos-arm64.spdx.json \
959976 --vex /talos.vex.json -vv 2>&1 | tee /grype-scan.log
@@ -965,7 +982,6 @@ FROM build-go AS grype-validate
965982COPY --from=sbom-arm64 /talos-arm64.spdx.json /talos-arm64.spdx.json
966983COPY --from=vex /talos.vex.json /talos.vex.json
967984COPY --from=vex /talos.grype.yaml /talos.grype.yaml
968- COPY ./tools ./tools
969985RUN --mount=type=cache,target=/.cache,id=talos/.cache go tool -modfile=tools/go.mod \
970986 github.com/anchore/grype/cmd/grype sbom:/talos-arm64.spdx.json \
971987 --vex /talos.vex.json -vv --fail-on negligible --config /talos.grype.yaml
0 commit comments