I am trying to write a bash regex compare in my pipeline and it makes the YAML invalid but I can't get around this by single or double quotes because then it won't execute the command on the container. Any suggestions?
- step:
name: test
script:
- [[ $BITBUCKET_BRANCH =~ [A-Z][a-z]+-[0-9]{2,} ]] && export BRANCH = $BASH_REMATCH[0]
- [[ $BRANCH =~ [0-9]+ ]] && export VERSION=1.$(date +%y).1$BASH_REMATCH-beta.$BITBUCKET_BUILD_NUMBER
Hello @[deleted]
Thank you for bringing this one up.
When testing this I realized that this issue is caused by a problem to interpret the square brackets "[[" at the beginning of this command.
I just opened a bug report for this thanks to you:
You should be able to go if you use the IF command to wrap up your test.
if [[ test ]]; then command_success; else command_failure; fi
so your commands will become:
- if [[ $BITBUCKET_BRANCH =~ [A-Z][a-z]+-[0-9]{2,} ]]; then export BRANCH = $BASH_REMATCH[0]; fi
- if [[ $BRANCH =~ [0-9]+ ]]; then export VERSION=1.$(date +%y).1$BASH_REMATCH-beta.$BITBUCKET_BUILD_NUMBER; fi
Please let me know if that solves the issue for you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.