Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

regex bash script in pipeline

Deleted user May 30, 2019

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   

1 answer

1 vote
Daniel Santos
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 7, 2019

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.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events