我正在自动配置Jenkins母版以实现一键式实例化。我们为每个实例创建了6个标准作业,我希望能够通过groovy.init.d脚本创建它们,但是没有找到这类作业的示例。
我们使用cloudbees Bitbucket Team / Project插件,最终创建WorkflowMultibranchProject类型的作业,并附加配置以连接到我们的本地Bitbucket实例。
有没有人有通过groovy创建这样一份工作的样本?我最好尝试使用JobDSL创建工作(我已经为母亲种子工作做了这个)
[更新]:在下面的答案的帮助下,提出了一个完整的示例,创建了一个完整的Bitbucket团队/项目工作:https://github.com/redfive/jenkins-init/blob/master/init.groovy.d/core-jobs.groovy
答案 0 :(得分:1)
使用Job DSL后,如果与使用Groovy相比更容易,那么我就不会有50/50未定(因为Job DSL缺乏对某些配置选项的支持)。
可以在@coderanger关于https://coderanger.net/jenkins/的文章中找到类似OrganizationFolder
的示例:
// Create the top-level item if it doesn't exist already.
def folder = jenkins.items.isEmpty() ? jenkins.createProject(OrganizationFolder, 'MyName') : jenkins.items[0]
// Set up GitHub source.
def navigator = new GitHubSCMNavigator(githubOrg)
navigator.credentialsId = cred.id // Loaded above in the GitHub section.
navigator.traits = [
// Too many repos to scan everything. This trims to a svelte 265 repos at the time of writing.
new jenkins.scm.impl.trait.WildcardSCMSourceFilterTrait('*-cookbook', ''),
// We have a ton of old branches so try to limit to just master and PRs for now.
new jenkins.scm.impl.trait.RegexSCMHeadFilterTrait('^(master|PR-.*)'),
new BranchDiscoveryTrait(1), // Exclude branches that are also filed as PRs.
new OriginPullRequestDiscoveryTrait(1), // Merging the pull request with the current target branch revision.
]
folder.navigators.replace(navigator)
下次我设置一个实例时,我可能会尝试一下。