#!/bin/bash
VERSION_REGEX="^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)((-(alpha|beta|rc)\.(0|[1-9][0-9]*))|((-(0|[1-9][0-9]*))?-[0-9]{14}-[[:xdigit:]]{12}))?$"
# Declare the array with version strings
versions=(
# Valid
"v0.0.0"
"v1.2.3"
"v11.22.33"
"v0.1.6-alpha.0"
"v0.1.2-alpha.0"
"v0.1.2-alpha.3"
"v1.2.3-beta.45"
"v23.34.45-rc.567"
"v0.0.0-20170915032832-14c0d48ead0c"
"v0.0.0-5-20170915032832-14c0d48ead0c"
# Invalid
"0"
"V0"
"v1"
"v000"
"v1.9"
"v.1.9"
"v1.90"
"v1.090"
"v00.00.00"
"v01.02.03"
"v1.9-alpha.2"
"v0.1.2-alpha.03"
"v1.2.3-beta-hardcoded.4"
"v0.0.0-5-20170915032832-14c0d48eaxyz"
"vX.Y.Z-C-20170915032832-14c0d48ead0c"
"v0.0.0-5-20170915032832-14c0d48ead0c-modified"
)
# Iterate over the array and echo each version
for CI_COMMIT_TAG in "${versions[@]}"; do
if [[ "$CI_COMMIT_TAG" =~ $VERSION_REGEX ]]; then
echo "$CI_COMMIT_TAG"
else
echo "Invalid tag format: $CI_COMMIT_TAG"
fi
done