我的用例:我想使用JCasC插件通过Jenkins Helm图表设置一个Jenkins配置。我还想通过管道插件在一系列Jenkinsfile中定义一些作业,这样整个安装就可以在代码中配置,只需运行helm install就可以执行干净、完整的安装。
但是,我在加载Pipeline脚本时遇到了问题。在我的JCasC中,我定义了一个作业DSL种子脚本,如下所示:
job('seedJob') {
scm {
git {
remote {
url 'ssh://git@foo/bar.git'
credentials 'creds'
}
}
}
steps {
dsl {
external 'jenkins/jobs/*.groovy'
}
}
}这将成功地从存储库中提取脚本,示例如下:
pipeline {
// hello.groovy
// Do stuff
}但是,在解析Pipeline脚本时,作业会失败,并显示以下错误:
ERROR: (hello.groovy, line 1) No signature of method: hello.pipeline() is applicable for argument types: (hello$_run_closure1) values: [hello$_run_closure1@4c6f43b6]
Possible solutions: pipelineJob(java.lang.String), pipelineJob(java.lang.String, groovy.lang.Closure)
Finished: FAILURE我怀疑Pipeline脚本不能通过Job DSL以这种方式读取。如果是这样的话,有没有办法从一个种子作业中加载多个Pipeline脚本?
发布于 2021-02-09 02:37:31
种子作业应如下所示:
pipelineJob('job_name_here') {
definition {
cpsScm {
scm {
git {
branches('*/master')
branches('*/release')
remote {
credentials('credentials_id_from_jenkins_here')
name('name')
url('git@gitlab_repo_here.git')
}
}
}
}
}
triggers {
gitlab {
ciSkip(true)
triggerOnPush(true)
triggerOnMergeRequest(false)
triggerOnClosedMergeRequest(true)
branchFilterType('RegexBasedFilter')
targetBranchRegex('(.*master.*|.*release.*)')
secretToken('paste_secret_token_for_webhook_here')
}
}
}https://stackoverflow.com/questions/66105971
复制相似问题