mirror of https://github.com/rancher/rke2.git
75 lines
2.4 KiB
Bash
Executable File
75 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -x
|
|
|
|
PROG=rke2
|
|
REGISTRY=${REGISTRY:-docker.io}
|
|
REPO=${REPO:-rancher}
|
|
K3S_PKG=github.com/k3s-io/k3s
|
|
RKE2_PKG=github.com/rancher/rke2
|
|
GO=${GO-go}
|
|
GOARCH=${GOARCH:-$("${GO}" env GOARCH)}
|
|
ARCH=${ARCH:-"${GOARCH}"}
|
|
GOOS=${GOOS:-$("${GO}" env GOOS)}
|
|
if [ -z "$GOOS" ]; then
|
|
if [ "${OS}" == "Windows_NT" ]; then
|
|
GOOS="windows"
|
|
else
|
|
UNAME_S=$(shell uname -s)
|
|
if [ "${UNAME_S}" == "Linux" ]; then
|
|
GOOS="linux"
|
|
elif [ "${UNAME_S}" == "Darwin" ]; then
|
|
GOOS="darwin"
|
|
elif [ "${UNAME_S}" == "FreeBSD" ]; then
|
|
GOOS="freebsd"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
GIT_TAG=$GITHUB_ACTION_TAG
|
|
TREE_STATE=clean
|
|
COMMIT=$DRONE_COMMIT
|
|
REVISION=$(git rev-parse HEAD)$(if ! git diff --no-ext-diff --quiet --exit-code; then echo .dirty; fi)
|
|
PLATFORM=${GOOS}-${GOARCH}
|
|
RELEASE=${PROG}.${PLATFORM}
|
|
# hardcode versions unless set specifically
|
|
KUBERNETES_VERSION=${KUBERNETES_VERSION:-v1.34.1}
|
|
KUBERNETES_IMAGE_TAG=${KUBERNETES_IMAGE_TAG:-v1.34.1-rke2r1-build20250910}
|
|
ETCD_VERSION=${ETCD_VERSION:-v3.6.5-k3s1}
|
|
PAUSE_VERSION=${PAUSE_VERSION:-3.6}
|
|
CCM_VERSION=${CCM_VERSION:-v1.34.2-0.20251010190833-cf0d35a732d1-build20251017}
|
|
|
|
if [ -d .git ]; then
|
|
if [ -z "$GIT_TAG" ]; then
|
|
GIT_TAG=$(git tag -l --contains HEAD | head -n 1)
|
|
fi
|
|
if [ -n "$(git status --porcelain --untracked-files=no)" ]; then
|
|
DIRTY="-dirty"
|
|
TREE_STATE=dirty
|
|
fi
|
|
|
|
COMMIT=$(git log -n3 --pretty=format:"%H %ae" | grep -v ' drone@localhost$' | cut -f1 -d\ | head -1)
|
|
if [ -z "${COMMIT}" ]; then
|
|
COMMIT=$(git rev-parse HEAD || true)
|
|
fi
|
|
fi
|
|
|
|
if [[ -n "$GIT_TAG" ]]; then
|
|
VERSION=$GIT_TAG
|
|
else
|
|
VERSION="${KUBERNETES_VERSION}+dev.${COMMIT:0:8}$DIRTY"
|
|
fi
|
|
|
|
if [[ "${VERSION}" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+)([-+][a-zA-Z0-9.]+)?[-+]((rke2r[0-9]+|dev.*))$ ]]; then
|
|
VERSION_MAJOR=${BASH_REMATCH[1]}
|
|
VERSION_MINOR=${BASH_REMATCH[2]}
|
|
PATCH=${BASH_REMATCH[3]}
|
|
RC=${BASH_REMATCH[4]}
|
|
RKE2_PATCH=${BASH_REMATCH[5]}
|
|
echo "VERSION=${VERSION} parsed as MAJOR=${MAJOR} MINOR=${MINOR} PATCH=${PATCH} RC=${RC} RKE2_PATCH=${RKE2_PATCH}"
|
|
fi
|
|
|
|
DEPENDENCIES_URL="https://raw.githubusercontent.com/kubernetes/kubernetes/${KUBERNETES_VERSION}/build/dependencies.yaml"
|
|
VERSION_GOLANG="go"$(curl -sL "${DEPENDENCIES_URL}" | yq e '.dependencies[] | select(.name == "golang: upstream version").version' -)
|
|
|
|
DOCKERIZED_VERSION="${VERSION/+/-}" # this mimics what kubernetes builds do
|