使用Jenkins中的Job DSL插件基于管道作业创建构建管道视图

时间:2018-01-11 12:27:25

标签: jenkins jenkins-job-dsl build-pipeline-plugin build-pipeline

由于Jenkins Pipeline的限制,你不能在不挂起构建的情况下添加手动构建步骤(参见例如this stackoverflow问题)我正在试验Jenkins Pipeline和Build Pipeline Plugin的组合使用Job DSL plugin

我的计划是创建一个Job DSL脚本,首先执行Jenkins管道(在Jenkinsfile中定义),然后创建一个部署到生产的下游作业(这是手动步骤)。我已经创建了这个Job DSL脚本作为测试:

pipelineJob("${REPO_NAME} jobs") {
  logRotator(-1, 10)    
  def repo = "https://path-to-repo/${REPO_NAME}.git"

  triggers {
    scm('* * * * *')
  }
  description("Pipeline for $repo")

  definition {
    cpsScm {
      scm {
        git {
          remote { url(repo) }
          branches('master')
          scriptPath('Jenkinsfile')
          extensions { }  // required as otherwise it may try to tag the repo, which you may not want
        }
      }
    }
  }

  publishers {
     buildPipelineTrigger("${REPO_NAME} deploy to prod") {
        parameters {
            currentBuild()
        }
     }
 }
}

freeStyleJob("${REPO_NAME} deploy to prod") {   
}

buildPipelineView("$REPO_NAME Build Pipeline") {
   selectedJob("${REPO_NAME} jobs")
}

其中REPO_NAME被定义为环境变量。 Jenkinsfile看起来像这样:

node {
    stage('build'){
        echo "building"
    }

    stage('run tests'){
        echo "running tests"
    }
    stage('package Docker'){
        echo "packaging"
    }
    stage('Deploy to Test'){
        echo "Deploying to Test"
    }
}

问题是selectedJob指向"${REPO_NAME} jobs",它似乎不是构建管道插件视图中的“初始作业”的有效选项(您无法手动选择它) )。

有解决方法吗?即如何使用Jenkins Pipeline作为Build Pipeline插件的“初始作业”?

0 个答案:

没有答案