- 我目前所理解的:**这是有意义的,我传入了一个文件,而不是硬编码脚本值
jobs:
- script: >
multibranchPipelineJob('configuration-as-code') {
branchSources {
git {
id = 'configuration-as-code'
remote('https://github.com/jenkinsci/configuration-as-code-plugin.git')
}
}
}
jobs:
- file: ./jobdsl/job.groovy
- 当前设置:**在jcasc部分下的jenkins helm values文件中,我有以下内容。这很好,它可以与我在这里没有展示的其他配置一起工作(与本次讨论无关)
JCasC:
defaultConfig: true
configScripts:
pipeline-job: |
jobs:
- script: >
multibranchPipelineJob('testrepo') {
branchSources {
git {
id('testrepo')
credentialsId('bitbucketv1')
remote('https://bitbucket.org/repo/test.git')
includes("master develop")
excludes("")
}
}
- 发行日期:**
如何将我的代码片段作为文件(如"-file:./jobdsl/job. groovy "。我在jenkins helm文件夹中创建了一个名为jobdsl的文件夹,并在开始时添加了带有multibranchpipelinejob代码片段的job. groovy。但是我收到一个错误消息,说文件不存在。
我是否需要创建一个配置Map并首先将此文件加载到jenkins中?或者是否有一种方法可以将文件从本地传递到上面我的helm图表片段中的jcasc脚本?另外,job.groovy的正确格式是什么?它是否包括-script:〉部分还是仅从多分支流水线作业开始向下?
1条答案
按热度按时间4urapxun1#
不幸的是,我不确定这是否可能。我试图找出同样的事情,但无济于事。然而,我将在这里记录我的步骤,以防我遗漏了一个步骤,有人可以帮助填补。
我使用的是Jenkins Helm图表https://github.com/jenkinsci/helm-charts,并且已经在Minkube上部署了我的示例。
根据可设置的可用图表值,我添加了以下内容:
这里的想法是,由于所有CACS脚本都保存在/var/jenkins_home/cacs_scripts文件夹中(您可以通过深入研究helm chart代码看到这一点),所以我也可以将JobDSL代码挂载到pod中并引用它。
下面是我用来将CACS代码添加到Jenkins pod的配置图:
然而,没有用。我尝试从我Map的配置Map文件的Angular 引用该文件,以及从实际文件(* 似乎 * 是Job DSL插件的编译Java代码)引用该文件。每次,它都说找不到该文件。
根据我对这里使用的
File()
(https://github.com/jenkinsci/job-dsl-plugin/blob/master/job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/casc/FromFileScriptSource.java)的了解,我的假设是它通过作业工作区查找路径,这与Pod上的Job DSL代码不同。如果有人发现关于这件事的其他任何东西来证明它确实有效,请告诉!