Precondition with OR does not work

Hey all, I have a build pre condition that checks two things: production or version. If the build is production I want to validate the version in my pre condition and if the build is not production I want to continue successfully without validating the version. When I run the two expression together it fails even when I specify PRODUCTION = false. That is, if I pass PRODUCTION == false I want to skip validating the version and continue successfully and if PRODUCTION == true I want to validate the version with my regex and fail if it is not a valid format. Here is my pre condition:
preconditions:
# Validate version following semver regex validator: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string, https://github.com/har7an/bash-semver-regex
- sh: '[[ {{ .PRODUCTION }} == "false" || {{ .VERSION }} =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]'
msg: Invalid semantic version format "{{ .VERSION }}"
preconditions:
# Validate version following semver regex validator: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string, https://github.com/har7an/bash-semver-regex
- sh: '[[ {{ .PRODUCTION }} == "false" || {{ .VERSION }} =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]'
msg: Invalid semantic version format "{{ .VERSION }}"
If PRODUCTION == "false" I want to skip performing the version format validation in the "||" and successfully pass the pre condition.
{{ .PRODUCTION }} == "false"
{{ .PRODUCTION }} == "false"
If VERSION is not in the correct format when PRODUCTION == "true" I want to fail the pre condition.
{{ .VERSION }} =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]
{{ .VERSION }} =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\+([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*))?$ ]]
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?