@@ -137,23 +137,6 @@ ENV PROTOTOOL_CACHE_PATH /.cache/prototool
137137ARG SOURCE_DATE_EPOCH
138138ENV SOURCE_DATE_EPOCH ${SOURCE_DATE_EPOCH}
139139WORKDIR /src
140- ARG NAME
141- ARG SHA
142- ARG USERNAME
143- ARG REGISTRY
144- ARG TAG
145- ARG ARTIFACTS
146- ARG PKGS
147- ARG EXTRAS
148- RUN mkdir -p pkg/machinery/gendata/data && \
149- echo -n ${NAME} > pkg/machinery/gendata/data/name && \
150- echo -n ${SHA} > pkg/machinery/gendata/data/sha && \
151- echo -n ${USERNAME} > pkg/machinery/gendata/data/username && \
152- echo -n ${REGISTRY} > pkg/machinery/gendata/data/registry && \
153- echo -n ${EXTRAS} > pkg/machinery/gendata/data/extras && \
154- echo -n ${PKGS} > pkg/machinery/gendata/data/pkgs && \
155- echo -n ${TAG} > pkg/machinery/gendata/data/tag && \
156- echo -n ${ARTIFACTS} > pkg/machinery/gendata/data/artifacts
157140
158141# The build-go target creates a container to build Go code with Go modules downloaded and verified.
159142
@@ -226,11 +209,36 @@ RUN --mount=type=cache,target=/.cache go generate ./...
226209RUN goimports -w -local github.com/talos-systems/talos ./
227210RUN gofumpt -w ./
228211
229- FROM build AS fix_embed
212+ FROM build AS embed-generate
213+ ARG NAME
214+ ARG SHA
215+ ARG USERNAME
216+ ARG REGISTRY
217+ ARG TAG
218+ ARG ARTIFACTS
219+ ARG PKGS
220+ ARG EXTRAS
221+ RUN mkdir -p pkg/machinery/gendata/data && \
222+ echo -n ${NAME} > pkg/machinery/gendata/data/name && \
223+ echo -n ${SHA} > pkg/machinery/gendata/data/sha && \
224+ echo -n ${USERNAME} > pkg/machinery/gendata/data/username && \
225+ echo -n ${REGISTRY} > pkg/machinery/gendata/data/registry && \
226+ echo -n ${EXTRAS} > pkg/machinery/gendata/data/extras && \
227+ echo -n ${PKGS} > pkg/machinery/gendata/data/pkgs && \
228+ echo -n ${TAG} > pkg/machinery/gendata/data/tag && \
229+ echo -n ${ARTIFACTS} > pkg/machinery/gendata/data/artifacts
230+
231+ FROM scratch AS embed
232+ COPY --from=embed-generate /src/pkg/machinery/gendata/data /pkg/machinery/gendata/data
233+
234+ FROM embed-generate AS embed-abbrev-generate
230235ARG ABBREV_TAG
231236RUN echo -n "undefined" > pkg/machinery/gendata/data/sha && \
232237 echo -n ${ABBREV_TAG} > pkg/machinery/gendata/data/tag
233238
239+ FROM scratch AS embed-abbrev
240+ COPY --from=embed-abbrev-generate /src/pkg/machinery/gendata/data /pkg/machinery/gendata/data
241+
234242FROM --platform=${BUILDPLATFORM} scratch AS generate
235243COPY --from=proto-format-build /src/api /api/
236244COPY --from=generate-build /api/common/*.pb.go /pkg/machinery/api/common/
@@ -247,7 +255,7 @@ COPY --from=go-generate /src/pkg/machinery/resources/network/ /pkg/machinery/res
247255COPY --from=go-generate /src/pkg/machinery/config/types/v1alpha1/ /pkg/machinery/config/types/v1alpha1/
248256COPY --from=go-generate /src/pkg/machinery/nethelpers/ /pkg/machinery/nethelpers/
249257COPY --from=go-generate /src/pkg/machinery/extensions/ /pkg/machinery/extensions/
250- COPY --from=fix_embed /src/pkg/machinery/gendata/data /pkg/machinery/gendata/data
258+ COPY --from=embed-abbrev / /
251259
252260# The base target provides a container that can be used to build all Talos
253261# assets.
@@ -257,7 +265,7 @@ COPY ./cmd ./cmd
257265COPY ./pkg ./pkg
258266COPY ./internal ./internal
259267COPY --from=generate /pkg/machinery/ ./pkg/machinery/
260- COPY --from=build /src/pkg/machinery/gendata/data ./pkg/machinery/gendata/data
268+ COPY --from=embed / ./
261269RUN --mount=type=cache,target=/.cache go list all >/dev/null
262270WORKDIR /src/pkg/machinery
263271RUN --mount=type=cache,target=/.cache go mod download
0 commit comments