我试图了解如何工作模板和项目应该被使用。在阅读了文档后,我想到了这个:
- project:
name: project-name
jobs:
- 'alcatel-pipeline':
svnurl: "svn://sourcecontrol/java/testing/swright-pipeline-test/trunk"
- 'other-pipeline':
svnurl: "svn://sourcecontrol/java/testing/swright-pipeline-test/trunk"
- job-template:
name: '{name}'
project-type: pipeline
pipeline-scm:
scm:
- svn:
url: '{svnurl}'
clean: true
script-path: Jenkinsfile
lightweight-checkout: true
我的想法是,对于project.jobs
中的每个项目,job-template
将用变量替换呈现一个作业。但是我得到的是以下错误:
jenkins_jobs.errors.JenkinsJobsException: Failed to find suitable template named 'alcatel-pipeline'
文档似乎表明,我需要有一个作业模板在项目的每一个项目。但是我看不出这对我的用例有什么用处,我有大约150个管道作业,它们只是名称和SCM URL不同。
如何定义一个作业模板和数据来呈现多个作业配置?
好吧,这看起来有点复杂,但它是有效的,并且在文档中也是这样描述的。
- project:
name: pipeline
jobs:
- '{id}-{name}':
id: "alcatel"
svnurl: "svn://sourcecontrol/java/testing/swright-pipeline-test/trunk"
- '{id}-{name}':
id: "other"
svnurl: "svn://sourcecontrol/java/testing/swright-pipeline-test/branches/test"
- job-template:
name: '{id}-{name}'
project-type: pipeline
pipeline-scm:
scm:
- svn:
url: '{svnurl}'
clean: true
script-path: Jenkinsfile
lightweight-checkout: true