我在Jenkins 2中有一个多分支管道作业,连接到GitHub存储库(此处可用)。GitHub存储库中的每个pull请求都会在Jenkins中创建一个新的“作业”,但是该作业会从pull请求编号中继承其名称(即作业被称为PR-1、PR-2等等),这在Jenkins上下文中是没有意义的。是否有可能(以及如何)配置job或Jenkinsfile来为每个pull请求添加一个作业描述?
以下是我如何从拉取请求的内容中设置职位描述:
if (env.BRANCH_NAME.startsWith('PR')) {
def resp = httpRequest url: "https://api.github.com/repos/xxx/yyy/pulls/${env.BRANCH_NAME.substring(3)}"
def ttl = getTitle(resp)
def itm = getItem(env.BRANCH_NAME)
itm.setDisplayName("PR '${ttl}'")
}
}
@NonCPS
def getItem(branchName) {
Jenkins.instance.getItemByFullName("sonar-openedge/${branchName}")
}
@NonCPS
def getTitle(json) {
def slurper = new groovy.json.JsonSlurper()
def jsonObject = slurper.parseText(json.content)
jsonObject.title
}
这允许直接从工作概述页面提供职位描述(如本例所示:https://ci.rssw.eu/job/sonar-openedge/)
完整提交和Jenkins文件可在此处获得:https://github.com/Riverside-Software/sonar-openedge/commit/e2c76ca58b812e4ceac65c406f0b2aae9fbf3f5f
问题内容: 有谁知道在Jenkinsfile中设置作业属性(特别是构建触发器)的正确方法吗? (多分支管道作业中的声明性管道脚本)。 为了清楚起见,我需要为多分支项目中的基础作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。 我收到错误消息,说自v0.8起,我应该改用options步骤:https ://jenkins.io/doc/book/pipeline/syntax/#
问题内容: 我想为每次推送触发多分支管道,有人可以让我知道如何在gitlab中为多分支管道配置Web挂钩。 问题答案: 如果您想知道触发器设置在多分支管道作业设置中的何处,将回答以下问题: 与其他作业类型不同,多分支作业配置不需要“触发器”设置。只需在GitLab中为推送请求创建一个Webhook,它指向项目的Webhook URL。 来源:https : //github.com/jenkins
是否可以扫描多分支管道以检测具有Jenkinsfile但不执行管道的分支? 我的项目有不同的分支,当我从父管道多分支启动构建扫描时,我不希望所有带有Jenkinsfile的子管道分支都开始执行。
问题内容: 我开始创建我的管道多分支环境,但是我遇到了一个问题。 我是否可以仅通过Jenkinsfile运行构建扫描以检测分支,而无需执行管道? 我的项目有不同的分支,当我从父管道多分支启动构建扫描时,我不想要所有带有Jenkinsfile的分支的所有子管道。 感谢您的帮助! 问题答案: 在“ 分支源” 部分,您可以添加一个名为“抑制自动SCM触发”的属性。 这样可以防止Jenkins使用。
我在Jenkins中有一个多分支管道项目。我想在管道项目中列出分支时禁用它。我可以添加异常以超越scm触发。但是我想禁用所有触发,包括手动触发。如果我在为分支创建的作业中使用“构建触发器”下的“禁用此项目”,则在我重新加载页面时不会选择该选项(没有可用于单分支管道的保存/应用按钮)。它只保留在Jenkinsfile中配置的以下配置。 有没有办法在Jenkinsfile中指定“禁用此项目”
问题内容: 在职位描述中,您可以使用Html标签。我有类似的东西: 但似乎在某处被擦洗了。还有另一种方法吗?关于支持什么和不支持什么的任何文档? 问题答案: Jenkins允许您使用各种标记语言来编写职位描述;插件可以定义如何通过接口解析描述。 默认情况下,使用,它应用HTML 清除策略(来自OWASP AntiSamy Project )-Myspace 策略。 在Myspace策略中,您将看到