diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f9ee4863a2b3f924564701a2f8bc6fc3a2a5f06d..5467ee00762979ba6a4ca7ca6cb3a735a6209b70 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,6 +75,8 @@ check-semantic-version: rules: - if: $CI_COMMIT_TAG image: alpine:latest + before_script: + - apk add perl script: - echo -n "$CI_COMMIT_TAG" | ./.gitlab/scripts/check-semantic-version.sh diff --git a/.gitlab/scripts/check-semantic-version.sh b/.gitlab/scripts/check-semantic-version.sh index 539dac85777eda838685fd05e3e2d2674c3637e3..7a7a5b7c2b1a3304eab5a1f8203721c5d4a9aba7 100755 --- a/.gitlab/scripts/check-semantic-version.sh +++ b/.gitlab/scripts/check-semantic-version.sh @@ -3,11 +3,9 @@ # Regex from https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string SEMANTIC_VERSION_REGEX='^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' -cat - | grep -qE "$SEMANTIC_VERSION_REGEX" +match=$(cat - | perl -ne "print if /$SEMANTIC_VERSION_REGEX/") -exit_code=$? -if [ $exit_code -ne 0 ]; then +if [ -z "$match" ]; then echo "The given version doesn't match the semantic versioning format." + exit 1 fi - -exit $exit_code