Как изменить агента сборки в соответствии с JOB_NAME - PullRequest
0 голосов
/ 28 сентября 2018

Я использую конвейерное задание Jenkins для реализации CI-CD

В настоящее время я указываю агент сборки на глобальном уровне.Я хочу изменить его в соответствии с JOB_NAME, например, если env.JOB_NAME=="jenkin-pipeline-admin-portal" должно основываться на build_2 else build_1

Я пытался реализовать его с помощью Jenkinsfile, но не сделалсработало,

Могу ли я сделать что-то на уровне конвейера заданий Jenkins, чтобы получить это ??

Ниже мой Jenkinsfile.

pipeline {
    agent {
            label "build_2" 
         }
    stages {
        stage('Build') {
            steps {
                checkout scm
                sh 'npm install'
            }
        }
        stage('Build-Image') {
            steps {
                echo '..........................Building Image..........................'
                script {
                    if(env.JOB_NAME=="jenkin-pipeline-admin-portal"){


                     sh 'sudo docker build -t hostname/admin-portal:1 --build-arg PORT=9007 --build-arg ENVIRONMENT=develop .'

                    }else if(env.JOB_NAME=="jenkin-pipeline-admin-portal-master"){
                    }else{
                         echo 'ELSE block.....................................'
                    }

                }


            }
        }
        stage('Tag-Image') {
            steps {
                  sh 'sudo docker tag hostname/admin-portal:1 hostname/jcibts_swm_dev/admin-portal:latest'
            }
        }
        stage('Push-Image') {
            steps {
                echo '..........................Pushing Image..........................'
                sh 'sudo docker push hostname/jcibts_swm_dev/admin-portal:latest'
            }
        }


    }
}

Пожалуйста, дайте мне знать, какие изменения янужно сделать

1 Ответ

0 голосов
/ 29 сентября 2018

Если вы не ограничены использованием декларативного конвейера, вы можете использовать сценарий:

def commonSteps() {
    // steps which are common to all JOB_NAMEs
}
if(JOB_NAME==‘jenkin-pipeline-admin-portal’) {
    node(‘build_2’) {
        // body 1
        commonSteps()
    }
} else {
    node(‘build_1’) {
        // body 2
        commonSteps()
    }
}
...