我正在使用CasC构建Jenkins管道。请原谅我,因为我对groovy和所有相关管道都很陌生,并且不确定我应该使用什么术语。我的目标是从以下方面拉工作:
https://gitlab.domain.com/<repo>/project.git
回购路径:
<repo>/jobs
使用Jenkins CasC yaml文件中的以下内容:
jobs:
- script: >
folder('App')
- file: /var/jenkins_home/pipelines/pull_jobs_wildcard
我有这样一段代码,它非常适合拉取单个作业,但我想修改它以使用通配符并拉取/jobs/* 路径中的所有管道作业。
我的剧本:
pipelineJob("App/App Server Stop") {
definition {
cpsScm {
scm {
git {
remote {
url("https://gitlab.domain.com/repo/project.git")
credentials("<git_creds_id>")
}
branch('develop')
}
}
scriptPath("jobs/app_server_stop")
}
}
triggers {
scm('H/15 * * * *')
}
}
我看过互联网上的一些例子,它们有巨大的代码或代码片段,但由于我不是程序员,我不知道我需要做什么。
我能不能稍微修改一下上面的内容,以将该路径下的所有作业都拉进来?我是不是错得太远了?我能不能这样做:
pipelineJob("App/*") {
definition {
cpsScm {
scm {
git {
remote {
url("https://gitlab.domain.com/repo/project.git")
credentials("<git_creds_id>")
}
branch('develop')
}
}
scriptPath("jobs/*")
}
}
triggers {
scm('H/15 * * * *')
}
}
如能提供帮助将不胜感激。
1条答案
按热度按时间chhqkbe11#
我能建议的是将以下脚本添加到您的CaaC:
这将创建连接到
git
存储库的作业,并从扩展名为.groovy
的jobs
目录加载所有文件。在我的示例中,我还使用了startup trigger插件,它将在每次
Jenkins
重新启动后运行此作业。我不建议使用
cron
触发器,因为如果有一些正在运行的作业,此作业将失败。