diff --git a/.gitea/workflows/check-version.yml b/.gitea/workflows/check-version.yml index 14c0e49..f638b08 100644 --- a/.gitea/workflows/check-version.yml +++ b/.gitea/workflows/check-version.yml @@ -32,15 +32,6 @@ jobs: repository: niko/gitea-ci-library path: .ci - - name: Install yq - # COMPROMISE: Requires internet access. - # Does NOT work in air-gapped environments. The script falls back - # to BOM-stripping sed if yq is not available. - run: | - if ! command -v yq &>/dev/null; then - sudo apt-get update -qq && sudo apt-get install -y -qq yq - fi - - name: Check existing artifact and calculate version env: SERVER_URL: ${{ gitea.server_url }} diff --git a/scripts/check-version.sh b/scripts/check-version.sh index 4baf9cf..5af0761 100755 --- a/scripts/check-version.sh +++ b/scripts/check-version.sh @@ -4,15 +4,13 @@ set -e RAW_VERSION="" if [ -n "${VERSION_FILE-}" ] && [ -f "${VERSION_FILE-}" ]; then - if echo "${VERSION_FILE}" | grep -q -E '\.[Yy][Aa][Mm][Ll]$'; then - RAW_VERSION=$(yq '.version' "${VERSION_FILE}" 2>/dev/null | grep -v '^null$' || true) - if [ -z "${RAW_VERSION}" ]; then - RAW_VERSION=$(sed 's/'$'\xef\xbb\xbf''//g' "${VERSION_FILE}" | sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p') + 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}") + else + RAW_VERSION=$(cat "${VERSION_FILE}" | tr -d '[:space:]') fi - elif echo "${VERSION_FILE}" | grep -q -E '\.json$'; then - RAW_VERSION=$(jq -r '.version' "${VERSION_FILE}") - else - RAW_VERSION=$(cat "${VERSION_FILE}" | tr -d '[:space:]') fi fi @@ -24,10 +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=$(yq '.version' Chart.yaml 2>/dev/null | grep -v '^null$' || true) - if [ -z "${RAW_VERSION}" ]; then - RAW_VERSION=$(sed 's/'$'\xef\xbb\xbf''//g' Chart.yaml | sed -n 's/^version:[[:space:]]*\([^[:space:]]*\).*/\1/p') - fi + 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