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.