@@ -126,12 +126,47 @@ echo ""
126126MARKETING_VERSION=$( grep ' MARKETING_VERSION' " $PROJECT_ROOT /VibeMeter/version.xcconfig" | sed ' s/.*MARKETING_VERSION = \(.*\)/\1/' )
127127BUILD_NUMBER=$( grep ' CURRENT_PROJECT_VERSION' " $PROJECT_ROOT /VibeMeter/version.xcconfig" | sed ' s/.*CURRENT_PROJECT_VERSION = \(.*\)/\1/' )
128128
129+ # Check if MARKETING_VERSION already contains a pre-release suffix
130+ if [[ " $MARKETING_VERSION " =~ ^([0-9]+\. [0-9]+\. [0-9]+)(-(.+))? $ ]]; then
131+ BASE_VERSION=" ${BASH_REMATCH[1]} "
132+ EXISTING_SUFFIX=" ${BASH_REMATCH[3]} "
133+ else
134+ echo -e " ${RED} ❌ Error: Invalid version format in version.xcconfig: $MARKETING_VERSION ${NC} "
135+ exit 1
136+ fi
137+
129138# Determine release version
130139if [[ " $RELEASE_TYPE " == " stable" ]]; then
140+ if [[ -n " $EXISTING_SUFFIX " ]]; then
141+ echo -e " ${YELLOW} ⚠️ Warning: version.xcconfig contains pre-release suffix '$EXISTING_SUFFIX ' for a stable release${NC} "
142+ echo " The MARKETING_VERSION should be just '$BASE_VERSION ' for stable releases."
143+ echo " "
144+ read -p " Continue with version $MARKETING_VERSION ? (y/n): " confirm
145+ if [[ " $confirm " != " y" ]]; then
146+ echo -e " ${RED} ❌ Release cancelled. Please update version.xcconfig first.${NC} "
147+ exit 1
148+ fi
149+ fi
131150 RELEASE_VERSION=" $MARKETING_VERSION "
132151 TAG_NAME=" v$RELEASE_VERSION "
133152else
134- RELEASE_VERSION=" $MARKETING_VERSION -$RELEASE_TYPE .$PRERELEASE_NUMBER "
153+ # For pre-releases, check if version already has the correct suffix
154+ EXPECTED_SUFFIX=" $RELEASE_TYPE .$PRERELEASE_NUMBER "
155+
156+ if [[ -n " $EXISTING_SUFFIX " ]]; then
157+ if [[ " $EXISTING_SUFFIX " == " $EXPECTED_SUFFIX " ]]; then
158+ # Version already has the correct pre-release suffix
159+ RELEASE_VERSION=" $MARKETING_VERSION "
160+ else
161+ echo -e " ${RED} ❌ Error: version.xcconfig has suffix '$EXISTING_SUFFIX ' but expected '$EXPECTED_SUFFIX '${NC} "
162+ echo " Please update version.xcconfig to have MARKETING_VERSION = $BASE_VERSION -$EXPECTED_SUFFIX "
163+ exit 1
164+ fi
165+ else
166+ # No suffix in version.xcconfig, add it
167+ RELEASE_VERSION=" $BASE_VERSION -$EXPECTED_SUFFIX "
168+ echo -e " ${YELLOW} ⚠️ Note: Adding pre-release suffix to create version $RELEASE_VERSION ${NC} "
169+ fi
135170 TAG_NAME=" v$RELEASE_VERSION "
136171fi
137172
0 commit comments