Jenkins 使用 Build Trigger 时
Jenkins when with Build Trigger
我在我的 jenkins 中有一个多分支工作,我有一个从我的 github 到我的 jenkins 的 webhook 设置,它发送每个拉取请求更改并发表评论。
我想要做的是让 github 发送拉取请求更改用于索引目的,但不要 运行 工作,除非开发人员添加评论 'test'在 github 拉取请求的评论中。
这是我的 Jenkinsfile
,
pipeline {
agent { label 'mac' }
stages {
stage ('Check Build Cause') {
steps {
script {
def cause = currentBuild.buildCauses.shortDescription
echo "${cause}"
}
}
}
stage ('Test') {
when {
expression {
currentBuild.buildCauses.shortDescription == "[GitHub pull request comment]"
}
}
steps {
sh 'bundle exec fastlane test'
}
}
}
}
所以我希望如果触发器不是 GitHub pull request comment
,则不要 运行 任何东西。我已经试过了,但没有用。我已经尝试打印 currentBuild.buildCauses.shortDescription
变量并打印 [GitHub pull request comment]
,但我的 when expression
仍然不会 运行
我该怎么做?谢谢
所以实际上问题是因为 currentBuild.buildCauses.shortDescription
return ArrayList 而不是普通字符串。
我真的不认为这是一个数组 [GitHub pull request comment]
,所以我设法用数组索引解决了这个问题。
currentBuild.buildCauses.shortDescription[0]
这 return 正确的构建触发器 GitHub pull request comment
。所以对于同样遇到这个问题的任何人,这就是我解决它的方法
pipeline {
agent { label 'mac' }
stages {
stage ('Test') {
when {
expression {
currentBuild.buildCauses.shortDescription[0] == "GitHub pull request comment"
}
}
steps {
sh 'bundle exec fastlane test'
}
}
}
}
我在我的 jenkins 中有一个多分支工作,我有一个从我的 github 到我的 jenkins 的 webhook 设置,它发送每个拉取请求更改并发表评论。
我想要做的是让 github 发送拉取请求更改用于索引目的,但不要 运行 工作,除非开发人员添加评论 'test'在 github 拉取请求的评论中。
这是我的 Jenkinsfile
,
pipeline {
agent { label 'mac' }
stages {
stage ('Check Build Cause') {
steps {
script {
def cause = currentBuild.buildCauses.shortDescription
echo "${cause}"
}
}
}
stage ('Test') {
when {
expression {
currentBuild.buildCauses.shortDescription == "[GitHub pull request comment]"
}
}
steps {
sh 'bundle exec fastlane test'
}
}
}
}
所以我希望如果触发器不是 GitHub pull request comment
,则不要 运行 任何东西。我已经试过了,但没有用。我已经尝试打印 currentBuild.buildCauses.shortDescription
变量并打印 [GitHub pull request comment]
,但我的 when expression
我该怎么做?谢谢
所以实际上问题是因为 currentBuild.buildCauses.shortDescription
return ArrayList 而不是普通字符串。
我真的不认为这是一个数组 [GitHub pull request comment]
,所以我设法用数组索引解决了这个问题。
currentBuild.buildCauses.shortDescription[0]
这 return 正确的构建触发器 GitHub pull request comment
。所以对于同样遇到这个问题的任何人,这就是我解决它的方法
pipeline {
agent { label 'mac' }
stages {
stage ('Test') {
when {
expression {
currentBuild.buildCauses.shortDescription[0] == "GitHub pull request comment"
}
}
steps {
sh 'bundle exec fastlane test'
}
}
}
}