#!/bin/bash set -e -x cd $(dirname $0)/.. . ./scripts/version.sh GO=${GO-go} PKG="github.com/k3s-io/k3s" PKG_CONTAINERD="github.com/containerd/containerd" PKG_K3S_CONTAINERD="github.com/k3s-io/containerd" PKG_CRICTL="github.com/kubernetes-sigs/cri-tools/pkg" PKG_K8S_BASE="k8s.io/component-base" PKG_K8S_CLIENT="k8s.io/client-go/pkg" buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') VERSIONFLAGS=" -X ${PKG}/pkg/version.Version=${VERSION} -X ${PKG}/pkg/version.GitCommit=${COMMIT:0:8} -X ${PKG_K8S_CLIENT}/version.gitVersion=${VERSION} -X ${PKG_K8S_CLIENT}/version.gitCommit=${COMMIT} -X ${PKG_K8S_CLIENT}/version.gitTreeState=${TREE_STATE} -X ${PKG_K8S_CLIENT}/version.buildDate=${buildDate} -X ${PKG_K8S_BASE}/version.gitVersion=${VERSION} -X ${PKG_K8S_BASE}/version.gitCommit=${COMMIT} -X ${PKG_K8S_BASE}/version.gitTreeState=${TREE_STATE} -X ${PKG_K8S_BASE}/version.buildDate=${buildDate} -X ${PKG_CRICTL}/version.Version=${VERSION_CRICTL} -X ${PKG_CONTAINERD}/version.Version=${VERSION_CONTAINERD} -X ${PKG_CONTAINERD}/version.Package=${PKG_K3S_CONTAINERD} -X ${PKG_CONTAINERD}/version.Version=${VERSION_CONTAINERD} -X ${PKG_CONTAINERD}/version.Package=${PKG_K3S_CONTAINERD} " LDFLAGS=" -w -s" STATIC="" TAGS="netcgo osusergo providerless" mkdir -p bin # Sanity check for downstream dependencies echo 'Validate K3s cross-compilation on Windows x86_64' GOOS=windows CGO_ENABLED=1 CXX=x86_64-w64-mingw32-g++ CC=x86_64-w64-mingw32-gcc \ "${GO}" build -tags "${TAGS}" -ldflags "${VERSIONFLAGS} ${LDFLAGS} ${STATIC}" -o bin/k3s.exe ./cmd/server/main.go if [ "${KEEP_WINDOWS_BIN}" != 'true' ]; then rm -rf bin/k3s.exe fi