我正在使用Jenkins管道作业来实施CI-CD
目前,我正在全球范围内指定构建代理。
我想根据JOB_NAME进行更改
例如,如果env.JOB_NAME=="jenkin-pipeline-admin-portal"
应该建立在 build_2 上,否则建立在 build_1
我尝试使用Jenkinsfile来实现它,但是没有解决问题,
我可以在詹金斯(Jenkins)工作流水线做些什么来实现这一目标吗?
下面是我的Jenkins文件。
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'
}
}
}
}
请让我知道我需要做些什么更改
答案 0 :(得分:0)
如果您不限于使用声明式管道,则可以使用脚本方法:
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()
}
}