mirror of
https://github.com/vee1e/kubeedge.git
synced 2026-09-02 02:37:43 +00:00
228 lines
7.9 KiB
Bash
Executable file
228 lines
7.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
###
|
|
#Copyright 2021 The KubeEdge Authors.
|
|
#
|
|
#Licensed under the Apache License, Version 2.0 (the "License");
|
|
#you may not use this file except in compliance with the License.
|
|
#You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
#Unless required by applicable law or agreed to in writing, software
|
|
#distributed under the License is distributed on an "AS IS" BASIS,
|
|
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
#See the License for the specific language governing permissions and
|
|
#limitations under the License.
|
|
###
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
KUBEEDGE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P)"
|
|
|
|
source "${KUBEEDGE_ROOT}/hack/lib/init.sh"
|
|
|
|
ALL_RELEASE_TARGETS=(
|
|
"kubeedge"
|
|
"edgesite"
|
|
"keadm"
|
|
)
|
|
|
|
function release() {
|
|
local -a targets=()
|
|
local VERSION=""
|
|
local ARCH="amd64"
|
|
local OS="linux"
|
|
local arm_version=""
|
|
|
|
for arg in "$@"; do
|
|
if [[ "${arg}" == GOARM7 ]]; then
|
|
ARCH="arm"
|
|
arm_version="GOARM7"
|
|
elif [[ "${arg}" == GOARM8 ]]; then
|
|
arm_version="GOARM8"
|
|
ARCH="arm64"
|
|
elif [[ "${arg}" == "linux" ]]; then
|
|
OS="linux"
|
|
elif [[ "${arg}" == windows ]]; then
|
|
OS="windows"
|
|
else
|
|
targets+=("${arg}")
|
|
fi
|
|
done
|
|
|
|
if [[ ${#targets[@]} -eq 0 ]]; then
|
|
targets=("${ALL_RELEASE_TARGETS[@]}")
|
|
fi
|
|
|
|
kubeedge::version::get_version_info
|
|
VERSION=${GIT_VERSION}
|
|
|
|
for bin in ${targets[@]}; do
|
|
case "${bin}" in
|
|
"edgesite")
|
|
if [ "${ARCH}" == "amd64" ]; then
|
|
hack/make-rules/build.sh edgesite-server edgesite-agent
|
|
else
|
|
hack/make-rules/crossbuild.sh edgesite-server edgesite-agent ${arm_version}
|
|
fi
|
|
|
|
build_edgesite_release $VERSION $ARCH
|
|
;;
|
|
"keadm")
|
|
if [ "${ARCH}" == "amd64" ] && [ "${OS}" == "linux" ]; then
|
|
hack/make-rules/build.sh keadm
|
|
else
|
|
hack/make-rules/crossbuild.sh keadm ${arm_version} GOARCH${ARCH} GOOS${OS}
|
|
fi
|
|
|
|
build_keadm_release $VERSION $ARCH $OS
|
|
;;
|
|
"kubeedge")
|
|
if [ "${OS}" == "linux" ]; then
|
|
if [ "${ARCH}" == "amd64" ]; then
|
|
hack/make-rules/build.sh cloudcore admission edgecore csidriver iptablesmanager controllermanager
|
|
else
|
|
hack/make-rules/crossbuild.sh cloudcore admission edgecore csidriver iptablesmanager controllermanager ${arm_version} GOOS${OS} GOARCH${ARCH}
|
|
fi
|
|
fi
|
|
|
|
if [ "${OS}" == "windows" ]; then
|
|
hack/make-rules/crossbuild.sh edgecore GOOS${OS} GOARCH${ARCH}
|
|
fi
|
|
|
|
build_kubeedge_release $VERSION $ARCH $OS
|
|
;;
|
|
*)
|
|
echo "not supported release:" $bin "only supported:" ${ALL_RELEASE_TARGETS[@]}
|
|
exit 1
|
|
esac
|
|
done
|
|
}
|
|
|
|
function build_kubeedge_release() {
|
|
local VERSION=""
|
|
local ARCH="amd64"
|
|
local OS="linux"
|
|
|
|
for arg in "$@"; do
|
|
if [[ "${arg}" == v* ]]; then
|
|
VERSION="${arg}"
|
|
elif [[ "${arg}" == arm* ]]; then
|
|
ARCH="${arg}"
|
|
elif [[ "${arg}" == "windows" ]]; then
|
|
OS="windows"
|
|
fi
|
|
done
|
|
|
|
echo "building kubeedge release:" ${VERSION} "ARCH:"${ARCH} "OS:"${OS}
|
|
|
|
if [ "${OS}" == "linux" ]; then
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/admission
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/cloudcore
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/csidriver
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/iptablesmanager
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/controllermanager
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/edge
|
|
|
|
cp _output/local/bin/admission _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/admission
|
|
cp _output/local/bin/cloudcore _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/cloudcore
|
|
cp _output/local/bin/csidriver _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/csidriver
|
|
cp _output/local/bin/iptablesmanager _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/iptablesmanager
|
|
cp _output/local/bin/controllermanager _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/cloud/controllermanager
|
|
cp _output/local/bin/edgecore _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/edge
|
|
|
|
elif [ "${OS}" == "windows" ]; then
|
|
mkdir -p _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/edge
|
|
cp _output/local/bin/edgecore _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/edge/edgecore.exe
|
|
fi
|
|
|
|
echo ${VERSION} > _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/version
|
|
cd _output/release/${VERSION}
|
|
tar -czvf ${KUBEEDGE_ROOT}/_output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz kubeedge-${VERSION}-${OS}-${ARCH}/
|
|
|
|
cd $KUBEEDGE_ROOT
|
|
rm -r _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}/
|
|
|
|
#calculate sha512sum
|
|
#the below command got like this:
|
|
# d6db3c28b1991de781bf19a82fc5b24a1dbf9634e8edfa10e2ad8636baaf37ab3141ea8814db1f1c91119fccc9b7ff44d8ab9f3def536fd5262418035f527e86 kubeedge-v1.9.0-linux-amd64.tar.gz
|
|
sum=$(sha512sum _output/release/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz)
|
|
sumArray=($sum)
|
|
echo ${sumArray[0]} > _output/release/${VERSION}/checksum_kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz.txt
|
|
}
|
|
|
|
function build_keadm_release() {
|
|
local VERSION=""
|
|
local ARCH="amd64"
|
|
local OS="linux"
|
|
|
|
for arg in "$@"; do
|
|
if [[ "${arg}" == v* ]]; then
|
|
VERSION="${arg}"
|
|
elif [[ "${arg}" == arm* ]]; then
|
|
ARCH="${arg}"
|
|
elif [[ "${arg}" == "windows" ]]; then
|
|
OS="windows"
|
|
fi
|
|
done
|
|
|
|
echo "building keadm release:" ${VERSION} "ARCH:"${ARCH} "OS:"${OS}
|
|
|
|
mkdir -p _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}/keadm
|
|
|
|
echo ${VERSION} > _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}/version
|
|
if [ "${OS}" == "linux" ]; then
|
|
cp _output/local/bin/keadm _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}/keadm
|
|
elif [ "${OS}" == "windows" ]; then
|
|
cp _output/local/bin/keadm _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}/keadm/keadm.exe
|
|
fi
|
|
|
|
cd _output/release/${VERSION}
|
|
tar -czvf ${KUBEEDGE_ROOT}/_output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}.tar.gz keadm-${VERSION}-${OS}-${ARCH}/
|
|
|
|
cd $KUBEEDGE_ROOT
|
|
rm -r _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}
|
|
|
|
#calculate sha512sum
|
|
sum=$(sha512sum _output/release/${VERSION}/keadm-${VERSION}-${OS}-${ARCH}.tar.gz)
|
|
sumArray=($sum)
|
|
echo ${sumArray[0]} > _output/release/${VERSION}/checksum_keadm-${VERSION}-${OS}-${ARCH}.tar.gz.txt
|
|
}
|
|
|
|
function build_edgesite_release() {
|
|
local VERSION=""
|
|
local ARCH="amd64"
|
|
|
|
for arg in "$@"; do
|
|
if [[ "${arg}" == v* ]]; then
|
|
VERSION="${arg}"
|
|
elif [[ "${arg}" == arm* ]]; then
|
|
ARCH="${arg}"
|
|
fi
|
|
done
|
|
|
|
echo "building edgesite release:" ${VERSION} "ARCH:"${ARCH}
|
|
|
|
mkdir -p _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}/edgesite
|
|
|
|
echo ${VERSION} > _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}/version
|
|
cp _output/local/bin/edgesite-agent _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}/edgesite
|
|
cp _output/local/bin/edgesite-server _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}/edgesite
|
|
|
|
cd _output/release/${VERSION}
|
|
tar -czvf ${KUBEEDGE_ROOT}/_output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}.tar.gz edgesite-${VERSION}-linux-${ARCH}/
|
|
|
|
cd $KUBEEDGE_ROOT
|
|
rm -r _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}
|
|
|
|
#calculate sha512sum
|
|
sum=$(sha512sum _output/release/${VERSION}/edgesite-${VERSION}-linux-${ARCH}.tar.gz)
|
|
sumArray=($sum)
|
|
echo ${sumArray[0]} > _output/release/${VERSION}/checksum_edgesite-${VERSION}-linux-${ARCH}.tar.gz.txt
|
|
}
|
|
|
|
release "$@"
|