diff --git a/scripts/check-version.sh b/scripts/check-version.sh index 0f588c0..5af0761 100755 --- a/scripts/check-version.sh +++ b/scripts/check-version.sh @@ -4,7 +4,7 @@ set -e RAW_VERSION="" if [ -n "${VERSION_FILE-}" ] && [ -f "${VERSION_FILE-}" ]; then - RAW_VERSION=$(sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p' "${VERSION_FILE}") + RAW_VERSION=$(tr -d "$(printf '\xef\xbb\xbf')" < "${VERSION_FILE}" | sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p') if [ -z "${RAW_VERSION}" ]; then if echo "${VERSION_FILE}" | grep -q -E '\.json$'; then RAW_VERSION=$(jq -r '.version' "${VERSION_FILE}") @@ -22,7 +22,7 @@ if [ -z "${RAW_VERSION}" ]; then elif [ -f pom.xml ]; then RAW_VERSION=$(grep -oP '\K[^<]+' pom.xml | head -1) elif [ -f Chart.yaml ]; then - RAW_VERSION=$(sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p' Chart.yaml) + RAW_VERSION=$(tr -d "$(printf '\xef\xbb\xbf')" < Chart.yaml | sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p') else echo "ERROR: No version source found (VERSION_FILE, VERSION, package.json, pom.xml, Chart.yaml)" >&2 exit 1 diff --git a/tests/check-version.bats b/tests/check-version.bats index 028e932..f27f4cd 100644 --- a/tests/check-version.bats +++ b/tests/check-version.bats @@ -153,6 +153,21 @@ teardown() { [ "$NEXT_VERSION" = "0.3.2" ] } +@test "VERSION_FILE=Chart-umbrella.yaml extracts only top-level version" { + mock_set_sequence '[{"code": 200, "body": []}]' + mock_start + + export VERSION_FILE="$BATS_TEST_DIRNAME/fixtures/check-version/Chart-umbrella.yaml" + run bash scripts/check-version.sh + + echo "STATUS=$status" + echo "OUTPUT=$output" + [ "$status" -eq 0 ] + source /tmp/build-ctx/build.env + echo "NEXT_VERSION=$NEXT_VERSION" + [ "$NEXT_VERSION" = "0.1.0" ] +} + @test "no version source exits with error" { mock_set_sequence '[{"code": 200, "body": []}]' mock_start diff --git a/tests/fixtures/check-version/Chart-umbrella.yaml b/tests/fixtures/check-version/Chart-umbrella.yaml new file mode 100644 index 0000000..66c873c --- /dev/null +++ b/tests/fixtures/check-version/Chart-umbrella.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: agent-platform +description: Agent Platform umbrella chart +type: application +version: 0.1.0 +dependencies: + - name: vikunja + version: "0.1.0" + repository: oci://registry.example.com + - name: langfuse + version: "0.2.0" + repository: oci://registry.example.com