test(ci): cover Helm chart version mapping (#2751)

This commit is contained in:
安正超
2026-04-30 14:11:14 +08:00
committed by GitHub
parent e34d75dfdf
commit 403997f2f8
3 changed files with 64 additions and 18 deletions
+1 -18
View File
@@ -69,24 +69,7 @@ jobs:
;;
esac
VERSION="$RAW_TAG"
case "$VERSION" in
v*)
VERSION="${VERSION#v}"
;;
esac
APP_VERSION="${RAW_TAG#v}"
BETA_NUM=$(echo "$APP_VERSION" | sed -n -E 's/^.*-beta\.([0-9]+)$/\1/p')
if [ -n "$BETA_NUM" ]; then
CHART_VERSION="0.${BETA_NUM}.0"
else
CHART_VERSION="$APP_VERSION"
fi
echo "raw_tag=$RAW_TAG" >> "$GITHUB_OUTPUT"
echo "app_version=$APP_VERSION" >> "$GITHUB_OUTPUT"
echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT"
./scripts/helm_chart_version.sh "$RAW_TAG"
- name: Replace chart version and app version
run: |
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -euo pipefail
if [ "$#" -ne 1 ]; then
echo "usage: $0 <tag-or-ref>" >&2
exit 2
fi
RAW="$1"
case "$RAW" in
refs/tags/*)
RAW_TAG="${RAW#refs/tags/}"
;;
*)
RAW_TAG="$RAW"
;;
esac
APP_VERSION="${RAW_TAG#v}"
BETA_NUM=$(printf '%s\n' "$APP_VERSION" | sed -n -E 's/^.*-beta\.([0-9]+)$/\1/p')
if [ -n "$BETA_NUM" ]; then
CHART_VERSION="0.${BETA_NUM}.0"
else
CHART_VERSION="$APP_VERSION"
fi
if [ -n "${GITHUB_OUTPUT:-}" ]; then
{
echo "raw_tag=$RAW_TAG"
echo "app_version=$APP_VERSION"
echo "chart_version=$CHART_VERSION"
} >>"$GITHUB_OUTPUT"
else
printf 'raw_tag=%s\n' "$RAW_TAG"
printf 'app_version=%s\n' "$APP_VERSION"
printf 'chart_version=%s\n' "$CHART_VERSION"
fi
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
SCRIPT="$ROOT_DIR/scripts/helm_chart_version.sh"
assert_version() {
local raw="$1"
local expected_raw_tag="$2"
local expected_app_version="$3"
local expected_chart_version="$4"
local output
output=$(mktemp)
GITHUB_OUTPUT="$output" "$SCRIPT" "$raw"
grep -qx "raw_tag=$expected_raw_tag" "$output"
grep -qx "app_version=$expected_app_version" "$output"
grep -qx "chart_version=$expected_chart_version" "$output"
rm -f "$output"
}
assert_version "refs/tags/v1.0.0-beta.12" "v1.0.0-beta.12" "1.0.0-beta.12" "0.12.0"
assert_version "v1.0.0" "v1.0.0" "1.0.0" "1.0.0"
assert_version "refs/tags/1.0.0" "1.0.0" "1.0.0" "1.0.0"