k3s/scripts/package-cli
Brad Davidson 4d7c1acf8b Fix windows build os (#13201)
* Pass GOOS into Dockerfile.local build args
  Fixes issue with build-windows job not actually building for windows
* Remove `go generate` from package-cli
  We no longer use codegen in this repo
* Fix go:embed path separator on Windows
* Bump hcsshim for containerd 2.1 compat on windows
* Include failing lister in error message
* Bump k3s-io/api and k3s-io/helm-controller for embedded CRD windows path fix

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
(cherry picked from commit ed57fb5e61)
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
2025-12-09 23:51:43 -08:00

86 lines
2 KiB
Bash
Executable file

#!/bin/bash
set -e -x
cd $(dirname $0)/..
. ./scripts/version.sh
GO=${GO-go}
for i in containerd crictl kubectl k3s-agent k3s-server k3s-token k3s-etcd-snapshot k3s-secrets-encrypt k3s-certificate k3s-completion; do
rm -f bin/$i${BINARY_POSTFIX}
ln -s k3s${BINARY_POSTFIX} bin/$i${BINARY_POSTFIX}
done
cni_binaries=(
"bandwidth"
"bridge"
"firewall"
"flannel"
"host-local"
"loopback"
"portmap"
)
if [ ${OS} = windows ]; then
cni_binaries=(
"win-overlay"
"flannel"
"host-local"
)
fi
for i in "${cni_binaries[@]}"; do
rm -f bin/$i${BINARY_POSTFIX}
ln -s cni${BINARY_POSTFIX} bin/$i${BINARY_POSTFIX}
done
cp contrib/util/check-config.sh bin/check-config
rm -rf build/data
mkdir -p build/data build/out
mkdir -p dist/artifacts
mkdir -p ./etc
(
set +x
cd bin
find . -not -path '*/\.*' -type f -exec sha256sum {} \; | sed -e 's| \./| |' | sort -k2 >.sha256sums
(
for f in $(find . -type l); do
echo $f $(readlink $f)
done
) | sed -e 's|^\./||' | sort >.links
set -x
)
tar cvf ./build/out/data-${OS}.tar ./bin ./etc
zstd --no-progress -T0 -16 -f --long=25 --rm ./build/out/data-${OS}.tar -o ./build/out/data-${OS}.tar.zst
HASH=$(sha256sum ./build/out/data-${OS}.tar.zst | awk '{print $1}')
cp ./build/out/data-${OS}.tar.zst ./build/data/${HASH}.tar.zst
BIN_SUFFIX="-${ARCH}"
if [ ${ARCH} = amd64 ]; then
BIN_SUFFIX=""
elif [ ${ARCH} = arm ]; then
BIN_SUFFIX="-armhf"
elif [ ${ARCH} = s390x ]; then
BIN_SUFFIX="-s390x"
fi
CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX}${BINARY_POSTFIX}
LDFLAGS="
-X github.com/k3s-io/k3s/pkg/version.Version=$VERSION
-X github.com/k3s-io/k3s/pkg/version.GitCommit=${COMMIT:0:8}
-w -s
"
TAGS="urfave_cli_no_docs"
STATIC="-extldflags '-static'"
cp -av build/data/* pkg/data/embed/
CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -buildvcs=false -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s
stat ${CMD_NAME}
./scripts/build-upload ${CMD_NAME} ${COMMIT}