diff --git a/.github/workflows/build_zip.yml b/.github/workflows/build_zip.yml index ae04d6e..81c3e5a 100644 --- a/.github/workflows/build_zip.yml +++ b/.github/workflows/build_zip.yml @@ -69,7 +69,7 @@ jobs: fi echo "TARGET_FOLDER=$TARGET_FOLDER" >> "$GITHUB_ENV" - echo "VERSION_SUFFIX=$VERSION_SUFFIX" >> "$GITHUB_ENV" + echo "INPUT_VERSION_SUFFIX=$VERSION_SUFFIX" >> "$GITHUB_ENV" - name: Prepare dist folder shell: bash @@ -78,6 +78,37 @@ jobs: rm -rf dist mkdir -p dist + - name: Resolve version + shell: bash + run: | + set -euo pipefail + + VERSION_SUFFIX="$INPUT_VERSION_SUFFIX" + + if [[ -z "$VERSION_SUFFIX" ]]; then + XML_FILE="" + if [[ -f "$TARGET_FOLDER/templateDetails.xml" ]]; then + XML_FILE="$TARGET_FOLDER/templateDetails.xml" + elif [[ -f "$TARGET_FOLDER/manifest.xml" ]]; then + XML_FILE="$TARGET_FOLDER/manifest.xml" + fi + + if [[ -n "$XML_FILE" ]]; then + VERSION_SUFFIX=$(grep -oPm1 '(?<=)[^<]+' "$XML_FILE" || true) + fi + fi + + if [[ -n "$VERSION_SUFFIX" ]] && [[ ! "$VERSION_SUFFIX" =~ ^[0-9]{2}\.[0-9]{2}\.[0-9]{2}$ ]]; then + echo "ERROR: Version found in XML is invalid: $VERSION_SUFFIX" >&2 + exit 1 + fi + + if [[ -z "$VERSION_SUFFIX" ]]; then + VERSION_SUFFIX="${GITHUB_REPOSITORY##*/}" + fi + + echo "VERSION_SUFFIX=$VERSION_SUFFIX" >> "$GITHUB_ENV" + - name: Create ZIP archive shell: bash run: |