1+ #! /usr/bin/env bash
2+ # Copyright 2024 PingCAP, Inc.
3+ #
4+ # Licensed under the Apache License, Version 2.0 (the "License");
5+ # you may not use this file except in compliance with the License.
6+ # You may obtain a copy of the License at
7+ #
8+ # http://www.apache.org/licenses/LICENSE-2.0
9+ #
10+ # Unless required by applicable law or agreed to in writing, software
11+ # distributed under the License is distributed on an "AS IS" BASIS,
12+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ # See the License for the specific language governing permissions and
14+ # limitations under the License.
15+
16+
17+ set -o errexit
18+ set -o nounset
19+ set -o pipefail
20+
21+ ROOT=$( cd $( dirname " ${BASH_SOURCE[0]} " ) /..; pwd -P)
22+
23+ RELEASE_TAG=${V_RELEASE:- " test" }
24+ CHARTS_BUILD_DIR=" output/chart"
25+ CHART_ITEMS=" tidb-operator tidb-drainer tidb-lightning"
26+ BR_FEDERATION=${BR_FEDERATION:- " true" }
27+
28+ mkdir -p ${CHARTS_BUILD_DIR}
29+
30+ # Build charts
31+ for chartItem in ${CHART_ITEMS} ; do
32+ [ ! -d " charts/${chartItem} " ] && continue
33+
34+ chartPrefixName=" ${chartItem} -${RELEASE_TAG} "
35+
36+ # Update Chart.yaml
37+ sed -i.bak " s/^version:.*/version: ${RELEASE_TAG} /g" charts/${chartItem} /Chart.yaml
38+ sed -i.bak " s/^appVersion:.*/appVersion: ${RELEASE_TAG} /g" charts/${chartItem} /Chart.yaml
39+ rm -f charts/${chartItem} /Chart.yaml.bak
40+
41+ # Update values.yaml
42+ sed -i.bak -E " s#pingcap/(tidb-operator|tidb-backup-manager):[^[:space:]]*#pingcap/\\ 1:${RELEASE_TAG} #g" charts/${chartItem} /values.yaml 2> /dev/null || true
43+ rm -f charts/${chartItem} /values.yaml.bak 2> /dev/null || true
44+
45+ # Package chart
46+ tar -zcf ${CHARTS_BUILD_DIR} /${chartPrefixName} .tgz -C charts ${chartItem}
47+ sha256sum ${CHARTS_BUILD_DIR} /${chartPrefixName} .tgz > ${CHARTS_BUILD_DIR} /${chartPrefixName} .sha256
48+ done
49+
50+ # Handle br-federation
51+ if [[ " $BR_FEDERATION " == " true" ]] && [ -d " charts/br-federation" ]; then
52+ chartItem=" br-federation"
53+ chartPrefixName=" ${chartItem} -${RELEASE_TAG} "
54+ sed -i.bak " s/^version:.*/version: ${RELEASE_TAG} /g" charts/${chartItem} /Chart.yaml
55+ sed -i.bak " s/^appVersion:.*/appVersion: ${RELEASE_TAG} /g" charts/${chartItem} /Chart.yaml
56+ rm -f charts/${chartItem} /Chart.yaml.bak
57+ sed -i.bak -E " s#pingcap/br-federation-manager:[^[:space:]]*#pingcap/br-federation-manager:${RELEASE_TAG} #g" charts/${chartItem} /values.yaml
58+ rm -f charts/${chartItem} /values.yaml.bak
59+ tar -zcf ${CHARTS_BUILD_DIR} /${chartPrefixName} .tgz -C charts ${chartItem}
60+ sha256sum ${CHARTS_BUILD_DIR} /${chartPrefixName} .tgz > ${CHARTS_BUILD_DIR} /${chartPrefixName} .sha256
61+ fi
0 commit comments