From 43662e4a24757eb657c06afe32e1c87253ef5ff3 Mon Sep 17 00:00:00 2001 From: Andrew Rynhard Date: Sat, 21 Mar 2020 14:27:03 -0700 Subject: [PATCH] feat: build talosctl for ARM64 This adds an ARM64 build of `talosctl`. Signed-off-by: Andrew Rynhard --- .drone.yml | 3 ++- Dockerfile | 15 +++++++++++++-- hack/drone.jsonnet | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2639ba43e..84a970cce 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3458,6 +3458,7 @@ steps: - _out/installer.tar - _out/talosctl-darwin-amd64 - _out/talosctl-linux-amd64 + - _out/talosctl-linux-arm64 - _out/vmware.ova - _out/vmlinux - _out/vmlinuz @@ -3572,6 +3573,6 @@ depends_on: --- kind: signature -hmac: de88d1e74755b71883afb67e12dea17205b75e9ec462837f035257292ffbe805 +hmac: 16c7e32ef2ca8687136040290ea9f3e1b74c54d3ec103c908fc1cea2d38858c0 ... diff --git a/Dockerfile b/Dockerfile index 81e8f1009..c4eb9a683 100644 --- a/Dockerfile +++ b/Dockerfile @@ -217,7 +217,7 @@ RUN --security=insecure img build --tag ${USERNAME}/routerd:${TAG} --output type # The talosctl targets build the talosctl binaries. -FROM base AS talosctl-linux-build +FROM base AS talosctl-linux-amd64-build ARG SHA ARG TAG ARG ARTIFACTS @@ -227,8 +227,19 @@ WORKDIR /src/cmd/talosctl RUN --mount=type=cache,target=/.cache/go-build GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X ${VERSION_PKG}.Name=Client -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG} -X ${MGMT_HELPERS_PKG}.ArtifactsPath=${ARTIFACTS}" -o /talosctl-linux-amd64 RUN chmod +x /talosctl-linux-amd64 +FROM base AS talosctl-linux-arm64-build +ARG SHA +ARG TAG +ARG ARTIFACTS +ARG VERSION_PKG="github.com/talos-systems/talos/pkg/version" +ARG MGMT_HELPERS_PKG="github.com/talos-systems/talos/cmd/talosctl/pkg/mgmt/helpers" +WORKDIR /src/cmd/talosctl +RUN --mount=type=cache,target=/.cache/go-build GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X ${VERSION_PKG}.Name=Client -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG} -X ${MGMT_HELPERS_PKG}.ArtifactsPath=${ARTIFACTS}" -o /talosctl-linux-arm64 +RUN chmod +x /talosctl-linux-arm64 + FROM scratch AS talosctl-linux -COPY --from=talosctl-linux-build /talosctl-linux-amd64 /talosctl-linux-amd64 +COPY --from=talosctl-linux-amd64-build /talosctl-linux-amd64 /talosctl-linux-amd64 +COPY --from=talosctl-linux-arm64-build /talosctl-linux-arm64 /talosctl-linux-arm64 FROM base AS talosctl-darwin-build ARG SHA diff --git a/hack/drone.jsonnet b/hack/drone.jsonnet index 209879542..da620e728 100644 --- a/hack/drone.jsonnet +++ b/hack/drone.jsonnet @@ -428,6 +428,7 @@ local release = { '_out/installer.tar', '_out/talosctl-darwin-amd64', '_out/talosctl-linux-amd64', + '_out/talosctl-linux-arm64', '_out/vmware.ova', '_out/vmlinux', '_out/vmlinuz',