34 lines
1.1 KiB
Bash
Executable File
34 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# package-chart.sh — 打包 Helm chart 为 tgz(离线安装用)
|
||
# 用法:bash package-chart.sh [CHART_DIR] [DIST_DIR]
|
||
set -euo pipefail
|
||
|
||
CHART_DIR="${1:-../helm/agentkit}"
|
||
DIST_DIR="${2:-dist}"
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||
|
||
# 解析 CHART_DIR 相对路径(相对于 offline/ 目录)
|
||
case "$CHART_DIR" in
|
||
/*) ABS_CHART_DIR="$CHART_DIR" ;;
|
||
*) ABS_CHART_DIR="${SCRIPT_DIR}/$CHART_DIR" ;;
|
||
esac
|
||
|
||
if [ ! -f "${ABS_CHART_DIR}/Chart.yaml" ]; then
|
||
echo "ERROR: Chart.yaml 未找到:${ABS_CHART_DIR}" >&2
|
||
exit 1
|
||
fi
|
||
|
||
if ! command -v helm >/dev/null 2>&1; then
|
||
echo "ERROR: helm 未安装。请先安装 Helm 3.x(https://helm.sh/docs/intro/install/)" >&2
|
||
exit 1
|
||
fi
|
||
|
||
mkdir -p "${SCRIPT_DIR}/${DIST_DIR}"
|
||
|
||
echo "==> 打包 Helm chart:${ABS_CHART_DIR}"
|
||
helm dependency build "${ABS_CHART_DIR}" 2>/dev/null || true # ponytail: 无依赖时静默跳过
|
||
helm package "${ABS_CHART_DIR}" -d "${SCRIPT_DIR}/${DIST_DIR}"
|
||
|
||
echo "==> 完成。产物目录:${SCRIPT_DIR}/${DIST_DIR}"
|
||
ls -lh "${SCRIPT_DIR}/${DIST_DIR}"/agentkit-*.tgz 2>/dev/null || true
|