I have a Jenkins MultiBranch project and I want the test circle to run only on two specific branches on master and on dev. I tried to add on all stages the following
when { anyOf { branch 'master'; branch 'dev' } } but the only thing I managed to achieve was to deactivate all branch runs
Here is my full pipeline Jenkinsfile
pipeline { agent any triggers { cron('H 0 * * *') } options { disableConcurrentBuilds() } stages { stage('Prepare env') { when { anyOf { branch 'master'; branch 'dev' } } steps { sh 'rm -rf venv' sh 'rm -rf "${WORKSPACE}/uploads"' sh 'rm -rf "${WORKSPACE}/downloads"' sh 'mkdir "${WORKSPACE}/uploads"' sh 'mkdir "${WORKSPACE}/downloads"' catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh 'docker kill $(docker ps -q)' sh 'docker rm $(docker ps -a -q)' sh 'docker volume rm $(docker volume ls -q)' } } } stage('Start Services') { when { anyOf { branch 'master'; branch 'dev' } } steps { } } stage('Test Common') { when { anyOf { branch 'master'; branch 'dev' } } steps { } } stage('Test Validations') { when { anyOf { branch 'master'; branch 'dev' } } steps { } } stage('Test CSV Issuance') { when { anyOf { branch 'master'; branch 'dev' } } steps { } } stage('Test XLS Issuance') { when { anyOf { branch 'master'; branch 'dev' } } steps { } } stage('Clean env') { when { anyOf { branch 'master'; branch 'dev' } } steps { sh 'rm -rf venv' sh 'rm -rf "${WORKSPACE}/uploads"' sh 'rm -rf "${WORKSPACE}/downloads"' catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh 'docker kill $(docker ps -q)' sh 'docker rm $(docker ps -a -q)' sh 'docker volume rm $(docker volume ls -q)' } } } }