@@ -142,8 +142,9 @@ func copyFile(src, dest string) (err error) {
142142}
143143
144144// detectCloudserverVersion extracts the major version from a cloudserver image tag.
145- // Returns "v7" for version 7.x images, "v9" for version 9+ images
146- // Defaults to "v9" for non-numeric tags (latest, dev, etc.) or when version cannot be determined.
145+ // Returns "v7" for version 7.x images (e.g., 7.70.77), "v9" for version 9+ images.
146+ // Only recognizes semver-style tags (digits followed by a dot). Git SHAs and other
147+ // non-semver tags default to "v9".
147148func detectCloudserverVersion (image string ) string {
148149 parts := strings .Split (image , ":" )
149150 if len (parts ) < 2 || parts [1 ] == "" {
@@ -159,7 +160,9 @@ func detectCloudserverVersion(image string) string {
159160 endIdx ++
160161 }
161162
162- if endIdx > 0 {
163+ // Must have a dot after the major version to be considered semver
164+ // This prevents git SHAs like "7aae6b6..." from being detected as v7
165+ if endIdx > 0 && endIdx < len (tag ) && tag [endIdx ] == '.' {
163166 majorVersionStr := tag [0 :endIdx ]
164167 if majorVersion , err := strconv .Atoi (majorVersionStr ); err == nil {
165168 if majorVersion == 7 {
@@ -172,6 +175,6 @@ func detectCloudserverVersion(image string) string {
172175 }
173176 }
174177
175- // Default to v9 for non-numeric tags (latest, dev, etc.)
178+ // Default to v9 for non-semver tags (latest, dev, git SHAs , etc.)
176179 return "v9"
177180}
0 commit comments