Xet*_*ius 5 groovy github jenkins jenkins-pipeline
当我的 Jenkins 实例启动时,我会自动将 GitHub 组织添加到它,但是当它添加每个作业时,它会执行它。这会导致执行许多作业,从而长时间(数小时)堵塞构建队列。有没有办法通过 Jenkinsfile 导入每个项目,但不自动运行构建?
当我启动 Jenkins 实例时,我运行以下代码:
import jenkins.branch.OrganizationFolder
import org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait
import org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator
import org.jenkinsci.plugins.github_branch_source.OriginPullRequestDiscoveryTrait
import org.jenkinsci.plugins.github_branch_source.GitHubConfiguration
import static jenkins.model.Jenkins.instance as jenkins
static Boolean organisationFolderExists(String name) {
def folders = jenkins.items
if (folders.isEmpty()) {
return false
}
def organisation = folders.find { folder -> folder.name == name }
return organisation
}
String lookupApiUri(def apiEndpoint) {
GitHubConfiguration gitHubConfig = GitHubConfiguration.get()
gitHubConfig.getEndpoints().findResult { it.name == apiEndpoint ? it.apiUri : null }
}
void createOrganisationFolder(def config) {
def folder = jenkins.createProject(OrganizationFolder, config.name)
folder.displayName = config.displayName
folder.description = config.description
GitHubSCMNavigator navigator = new GitHubSCMNavigator(config.name)
navigator.credentialsId = config.project.scanCredentials
navigator.apiUri = lookupApiUri(config.project.apiEndpoint)
navigator.traits = [
new jenkins.scm.impl.trait.WildcardSCMSourceFilterTrait(config.project.repositoryNamePattern, ''),
new jenkins.scm.impl.trait.RegexSCMHeadFilterTrait('.*'),
new BranchDiscoveryTrait(3),
new OriginPullRequestDiscoveryTrait(3),
]
folder.navigators.replace(navigator)
jenkins.save()
folder.scheduleBuild(0)
}
if (!organisationFolderExists(config.name)) {
createOrganisationFolder(config)
}
Run Code Online (Sandbox Code Playgroud)
这成功创建了组织,但我需要一种方法来停止每个构建的执行。这正在连接到我们的内部 GitHub Enterprise 实例。
| 归档时间: |
|
| 查看次数: |
563 次 |
| 最近记录: |