@@ -55,15 +55,37 @@ jobs:
5555 - name : Get Current Version
5656 id : current_version
5757 run : |
58- LATEST_TAG=$(git tag -l 'v*' | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n1)
58+ # 1. หา Tag
59+ LATEST_TAG=$(git tag -l 'v*' | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n1)
60+ LATEST_TAG_DAV=$(git tag -l 'v*' | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+-dev\.[0-9]+' | sort -V | tail -n1)
5961
62+ # 2. ตัด suffix ของ Dev ออกเพื่อเทียบ
63+ LATEST_TAG_DAV_REMOVED=${LATEST_TAG_DAV%%-*}
64+
65+ # 3. Logic เช็ค same_tag
66+ same_tag="true"
67+ if [[ "$LATEST_TAG_DAV_REMOVED" != "$LATEST_TAG" ]]; then
68+ same_tag="false"
69+ fi
70+
71+ echo "same_tag=$same_tag" >> $GITHUB_OUTPUT
72+
73+ # 4. กำหนด CURRENT_VERSION
6074 if [ -z "$LATEST_TAG" ]; then
6175 echo "No tags found. Defaulting to v0.0.0"
6276 CURRENT_VERSION="0.0.0"
6377 else
6478 echo "Found latest tag: $LATEST_TAG"
65- CURRENT_VERSION="${LATEST_TAG#v}"
79+
80+ # --- จุดที่แก้ไข (เพิ่ม ; then) ---
81+ if [ "$same_tag" == "false" ]; then
82+ CURRENT_VERSION="${LATEST_TAG_DAV#v}"
83+ else
84+ CURRENT_VERSION="${LATEST_TAG#v}"
85+ fi
86+ # -----------------------------
6687 fi
88+
6789 echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
6890
6991 - name : Calculate New Version
7294 CURRENT_VERSION : ${{ steps.current_version.outputs.version }}
7395 TARGET_BRANCH : ${{ github.event.pull_request.base.ref }}
7496 SOURCE_BRANCH : ${{ github.event.pull_request.head.ref }}
97+ SAME_TAG : ${{ steps.current_version.outputs.same_tag }}
7598 run : |
7699 echo "Target: $TARGET_BRANCH | Source: $SOURCE_BRANCH | Current: $CURRENT_VERSION"
77100 BASE_VERSION=${CURRENT_VERSION%%-*}
@@ -91,12 +114,14 @@ jobs:
91114
92115 # === DEVELOPMENT ===
93116 elif [ "$TARGET_BRANCH" == "development" ]; then
94- if [[ "$CURRENT_VERSION" == *"-dev."* || "$SOURCE_BRANCH" == "main" ]]; then
117+ if [[ "$CURRENT_VERSION" == *"-dev."* && "$SAME_TAG" == "true" ]]; then
118+ NEW_VERSION="$MAJOR.$((MINOR + 1)).0-dev.1"
119+ elif [[ "$CURRENT_VERSION" == *"-dev."* || "$SOURCE_BRANCH" == "main" ]]; then
95120 LAST_NUM=${CURRENT_VERSION##*.}
96121 NEXT_NUM=$((LAST_NUM + 1))
97122 NEW_VERSION="${BASE_VERSION}-dev.${NEXT_NUM}"
98123 else
99- NEW_VERSION="$MAJOR.$((MINOR + 1)).0-dev.1 "
124+ echo "Strategy: Dev increment "
100125 fi
101126 echo "Strategy: Dev increment"
102127 else
0 commit comments