#!/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