mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-02-18 23:41:48 +01:00
67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Package (and optionally push) the Pulse Helm chart.
|
|
# Usage:
|
|
# ./scripts/package-helm-chart.sh [version] [--push]
|
|
# Environment:
|
|
# OCI_REPO (default: ghcr.io/rcourtman/pulse-chart)
|
|
# HELM_BIN (default: helm)
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
CHART_DIR="$REPO_ROOT/deploy/helm/pulse"
|
|
DIST_DIR_OVERRIDE="${DIST_DIR_OVERRIDE:-${DIST_DIR:-}}"
|
|
if [[ -n "$DIST_DIR_OVERRIDE" ]]; then
|
|
DIST_DIR="$DIST_DIR_OVERRIDE"
|
|
else
|
|
DIST_DIR="$REPO_ROOT/dist"
|
|
fi
|
|
HELM_BIN="${HELM_BIN:-helm}"
|
|
OCI_REPO="${OCI_REPO:-ghcr.io/rcourtman/pulse-chart}"
|
|
|
|
if ! command -v "$HELM_BIN" >/dev/null 2>&1; then
|
|
echo "Error: Helm not found (expected at \$HELM_BIN=$HELM_BIN). Install Helm 3.9+ first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
VERSION_DEFAULT="$(cat "$REPO_ROOT/VERSION")"
|
|
VERSION="${1:-$VERSION_DEFAULT}"
|
|
VERSION="${VERSION#v}" # strip leading v if provided
|
|
|
|
PUSH=false
|
|
for arg in "$@"; do
|
|
if [ "$arg" = "--push" ]; then
|
|
PUSH=true
|
|
fi
|
|
done
|
|
|
|
echo "Packaging Pulse chart version $VERSION (appVersion=$VERSION)"
|
|
|
|
rm -rf "$DIST_DIR"
|
|
mkdir -p "$DIST_DIR"
|
|
|
|
"$HELM_BIN" lint "$CHART_DIR" --strict
|
|
"$HELM_BIN" package "$CHART_DIR" \
|
|
--version "$VERSION" \
|
|
--app-version "$VERSION" \
|
|
--destination "$DIST_DIR"
|
|
|
|
PACKAGE_PATH="$DIST_DIR/pulse-$VERSION.tgz"
|
|
if [ ! -f "$PACKAGE_PATH" ]; then
|
|
echo "Error: Expected package $PACKAGE_PATH not found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$PUSH" = true ]; then
|
|
echo "Pushing chart to oci://$OCI_REPO"
|
|
"$HELM_BIN" push "$PACKAGE_PATH" "oci://$OCI_REPO"
|
|
fi
|
|
|
|
echo "Chart packaged at $PACKAGE_PATH"
|
|
if [ "$PUSH" = true ]; then
|
|
echo "Chart pushed to oci://$OCI_REPO"
|
|
else
|
|
echo "Run with --push (after logging into GHCR) to upload the artifact."
|
|
fi
|