forked from rancher/rke2
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathversion.sh
More file actions
executable file
·74 lines (67 loc) · 2.28 KB
/
Copy pathversion.sh
File metadata and controls
executable file
·74 lines (67 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
set -x
PROG=rke2
REGISTRY=${REGISTRY:-docker.io}
REPO=${REPO:-rancher}
K3S_PKG=github.com/k3s-io/k3s
HELMCTR_PKG=github.com/k3s-io/helm-controller
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
ETCD_VERSION=${ETCD_VERSION:-v3.6.14-k3s1}
KUBERNETES_VERSION=${KUBERNETES_VERSION:-v1.35.7}
KUBERNETES_IMAGE_TAG=${KUBERNETES_IMAGE_TAG:-v1.35.7-rke2r1-build20260723}
PAUSE_VERSION=${PAUSE_VERSION:-3.10.2}
CCM_VERSION=${CCM_VERSION:-v1.35.6-0.20260610221957-158346759a70-build20260710}
KLIPPERHELM_VERSION=${KLIPPERHELM_VERSION:-v0.13.3-build20260727}
KLIPPERLB_VERSION=${KLIPPERLB_VERSION:-v0.4.17}
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
DOCKERIZED_VERSION="${VERSION/+/-}" # this mimics what kubernetes builds do