Lars
Lars

Reputation: 340

One Jenkins job with 2 branches

Currently working on a basic deployment pipeline in Jenkins (with pipeline). I am looking for the best way of doing the following:

When the developer pushes to the development branch, all stages but deploy is executed. When the developer pushes to the master branch, all stages including deploy is executed.

I have read about matching patterns you can do, but not sure if this is the right way as the information I read was dated.

My Jenkins pipeline file

node {
    stage('Preparation') {
        git '[email protected]:foo/bar.git'
    }
    stage('Build') {
        sh 'mkdir -p app/cache app/logs web/media/cache web/uploads'
        sh 'composer install'
    }
    stage('Test') {
        sh 'codecept run'
    }
    stage('Deploy') {
        sh 'mage deploy to:prod'
    }
}

Upvotes: 1

Views: 551

Answers (1)

David M. Karr
David M. Karr

Reputation: 15205

There's no magic here. This is just Groovy code. The branch in scope will be available as a parameter in some way. Inside the "stage" block, add an "if" check to compare the branch name with whatever logic you need, and either execute the body or not, depending on what branch is in scope.

Upvotes: 2

Related Questions