The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

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

behave bitbucket pipelines run another step only if previous step has failed

Walezy Konstanty
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
May 17, 2021

i want to create a simple 2 step pipeline, 1 step will do the tests (behave -v) and second one will rerun tests (behave "@rerun_failing.features") only if the 1 step will fail. When 1 step has no failures, 2nd step will not run.

First scenario: Step with behave -v will succeed, no need to rerun tests - pipeline should mark as success.

Second scenario: Step with behave -v will fail, rerun also fails - pipeline should mark as failed.

Third scenario: Step with behave -v will fail, rerun was a success - pipeline should mark as success.

What conditions should i use to achive this in a simplest way ?

My code looks like this...

   image: python:3.8
   definitions:
    steps:
       - step: &test
           name: Test
           caches:
           - pip
           script:
             - apt update && apt install -y chromium
             - ln -s /usr/bin/chromium /usr/bin/google-chrome
             - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
             - try{
                 behave -v
               }
               catch(Exception e) {
                 behave "@rerun_failing.features"
                   - if [$BITBUCKET_EXIT_CODE -eq 0]; then echo "Rerun tests have passed successfully"; else echo "Rerun tests have failed" || false; fi
               }
               else{
                 echo "All tests passed successfully"
               }
    pipelines:
      custom:
        dev:
          - step: *test

P.s. When i run this code i got line 14: syntax error near unexpected token '('

Thanks in advance for any tips.

0 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

TAGS
AUG Leaders

Atlassian Community Events