|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +case $(uname -m) in |
| 6 | +amd64 | x86_64) |
| 7 | + ARCH=amd64 |
| 8 | + ;; |
| 9 | +arm64 | aarch64) |
| 10 | + ARCH=arm64 |
| 11 | + ;; |
| 12 | +*) |
| 13 | + echo "Unsupported architecture $ARCH" |
| 14 | + exit |
| 15 | + ;; |
| 16 | +esac |
| 17 | + |
| 18 | +declare -A VERs=( |
| 19 | + ["v030"]="" |
| 20 | + ["v029"]="" |
| 21 | + ["v028"]="" |
| 22 | + ["v027"]="" |
| 23 | + ["v026"]="" |
| 24 | + ["v025"]="" |
| 25 | + ["v024"]="" |
| 26 | +) |
| 27 | +for name in ${!VERs[*]}; do |
| 28 | + export "$name"="$(until git ls-remote --refs --sort="-version:refname" --tags "https://github.com/kubernetes/api.git" | cut -d/ -f3- | grep -E "^v[0-9.]+$"; do sleep 1; done | grep "${name/0/0.}" | head -n 1)" |
| 29 | +done |
| 30 | +k8s_api_v02=$( |
| 31 | + env | grep ^v02 | sort -r | while read -r v02; do |
| 32 | + v=${v02#*=} |
| 33 | + printf 's~(k8s.io/.+)%s[.0-9]+~\\1%s~g;' "${v%.*}" "$v" |
| 34 | + done |
| 35 | +) |
| 36 | + |
| 37 | +rm -rf sealos |
| 38 | +git clone --depth 9 https://github.com/muicoder/sealos.git |
| 39 | +cd sealos |
| 40 | +readonly CODE_DIR=$(pwd) |
| 41 | +readonly CODE_HEAD=$(git rev-parse HEAD) |
| 42 | +readonly COMMIT=${COMMIT:-$(git rev-parse --short HEAD^)} |
| 43 | +readonly TAG=${TAG:-4.3} |
| 44 | + |
| 45 | +code_reset() { |
| 46 | + if pushd "$CODE_DIR" >/dev/null 2>&1; then |
| 47 | + git clean -fdx |
| 48 | + git reset --hard "$CODE_HEAD" |
| 49 | + git reset --soft "$COMMIT" |
| 50 | + git tag --delete "$TAG" >/dev/null 2>&1 || true |
| 51 | + git tag "$TAG" |
| 52 | + git rev-parse --short HEAD |
| 53 | + sed -E "s~^VERSION.+~VERSION=$TAG~;s~^BUILD_DATE.+~BUILD_DATE=2006-01-02T15:04:05-0700~" <scripts/make-rules/common.mk >f.sed && mv f.sed scripts/make-rules/common.mk |
| 54 | + find . -type f -name "*.mod" | while read -r mod; do sed -E "$k8s_api_v02" <"$mod" >"$mod.sed" && mv "$mod.sed" "$mod"; done |
| 55 | + popd >/dev/null 2>&1 |
| 56 | + else |
| 57 | + exit |
| 58 | + fi |
| 59 | + go get github.com/google/gnostic |
| 60 | + go get github.com/google/gnostic-models |
| 61 | + go get k8s.io/kube-openapi |
| 62 | + go work sync |
| 63 | +} |
| 64 | +{ |
| 65 | + buildah version |
| 66 | + sudo docker run --rm -v "/usr/bin:/pwd" -w /tools --entrypoint /bin/sh "ghcr.io/labring-actions/cache:tools-$ARCH" -c "ls -lh && cp -a . /pwd" 2>/dev/null |
| 67 | + buildah version |
| 68 | + sudo apt-get remove -y docker docker-engine docker.io containerd runc moby-engine moby-cli moby-buildx moby-compose >/dev/null |
| 69 | + sudo apt-get purge docker-ce docker-ce-cli containerd.io >/dev/null # docker-compose-plugin |
| 70 | + sudo apt update >/dev/null |
| 71 | + sudo apt install -y gcc-aarch64-linux-gnu qemu-user-static binfmt-support libgpgme-dev libbtrfs-dev libdevmapper-dev >/dev/null |
| 72 | + rm -rf /tmp/go |
| 73 | + wget -qO- https://go.dev/dl/go1.23.12.linux-$ARCH.tar.gz | sudo tar -C /tmp -xz |
| 74 | + export PATH="/tmp/go/bin:${PATH}" |
| 75 | + go version |
| 76 | +} |
| 77 | + |
| 78 | +code_reset |
| 79 | +grep 10.103.97.2 -rl | grep .go$ | xargs sed -i "s~10.103.97.2~172.31.255.254~g" |
| 80 | +BINS="lvscare sealctl sealos" make build.multiarch || true |
| 81 | +find bin -type f -exec ls -l {} + |
| 82 | +for hcra in amd64 arm64; do |
| 83 | + pushd bin/linux_$hcra |
| 84 | + tar -zcvf "/tmp/bin.$hcra.tgz" ./* |
| 85 | + popd |
| 86 | +done |
| 87 | + |
| 88 | +code_reset |
| 89 | +{ |
| 90 | + go work edit -replace "k8s.io/cri-api=k8s.io/cri-api@$v025" |
| 91 | + pushd "staging/src/github.com/labring/image-cri-shim" |
| 92 | + sed -E "s~(k8s.io/.+)v0.2[.0-9]+~\1$v030~g;" <go.mod >f.sed && mv f.sed go.mod |
| 93 | + go mod edit -replace "k8s.io/cri-api=k8s.io/cri-api@$v025" go.mod |
| 94 | + go mod edit -replace "github.com/containers/image/v5=github.com/containers/image/v5@v5.30.2" go.mod |
| 95 | + go mod edit -replace "google.golang.org/grpc=google.golang.org/grpc@v1.64.1" go.mod |
| 96 | + go get -u all |
| 97 | + git diff go.mod | grep "^[+-]" |
| 98 | + popd |
| 99 | + grep 10.103.97.2 -rl | grep .go$ | xargs sed -i "s~10.103.97.2~172.31.255.254~g" |
| 100 | + BINS="image-cri-shim" make build.multiarch || true |
| 101 | + find bin -type f -exec ls -l {} + |
| 102 | + tar -zcvf /tmp/bin.ics.tgz bin |
| 103 | +} |
0 commit comments