I am using Jenkins for CI-CD on docker environment. I have 3 environments and branches according to the environment. Say, develop, qa, prod.
I am using Jenkins pipeline for building and pushing the image to DTR.
I just want to check how can I get the branch name in jenkinsfile so that I can have a condition on the basis of branch name to push the Docker image dependent upon branch name like:
if(env.BRANCH_NAME==develop){ Below is my Jenkinsfile:
pipeline { agent { label "master" } stages { stage('Build') { steps { echo '..........................Building Jar..........................' echo 'Pulling................................................' + env.BRANCH_NAME sh 'npm install' } } stage('Build-Image') { steps { echo '..........................Building Image..........................' sh 'sudo docker build -t some_org_dev/some_repo:v0.1 --build-arg PORT=9007 --build-arg ENVIRONMENT=develop .' } } stage('Tag-Image') { steps { if(env.BRANCH_NAME==develop){ echo '..........................Taging Image..........................' sh 'sudo docker login some_org_dev/some_repo -u username -p password' sh 'sudo docker tag some_org_dev/some_repo:v0.1 some_org/some_repo/service-portal:v0.1' }else if(env.BRANCH_NAME==qa){ echo '..........................Taging Image..........................' sh 'sudo docker login some_org_qa/some_repo -u username -p password' sh 'sudo docker tag some_org_qa/some_repo:v0.1 some_org/some_repo/service-portal:v0.1' } } stage('Push-Image') { steps { if(env.BRANCH_NAME==develop){ echo '..........................Pushing Image..........................' sh 'sudo docker push some_org_dev/some_repo:v0.1 some_org/some_repo/service-portal:v0.1' } }else if(env.BRANCH_NAME==qa){ echo '..........................Pushing Image..........................' sh 'sudo docker push some_org_qa/some_repo:v0.1 some_org/some_repo/service-portal:v0.1' } } } }