如何在OpenShift内联Jenkinsfile中获取Bitbucket Webhook的Git信息?
如何在OpenShift JenkinsPipeline中获取Bitbucket Webhook的Git信息
当然可行!你遇到的env.BRANCH_NAME为空的问题,是因为这个变量是Jenkins多分支流水线默认提供的,而你当前是通过OpenShift BuildConfig触发的单流水线,所以这个变量不会自动生成。不过OpenShift的Bitbucket触发器会把Webhook中的关键Git信息以环境变量的形式注入到Jenkins构建Pod中,你可以直接使用这些变量。
可用的核心环境变量
当Bitbucket Webhook触发OpenShift构建时,以下Git相关变量会被自动设置:
BUILD_SOURCE_REPOSITORY_URL: 触发构建的Git仓库完整URLBUILD_SOURCE_REPOSITORY_REF: 触发构建的分支名或标签名BUILD_COMMIT: 触发构建的提交哈希值
修改你的Jenkinsfile
更新内联Jenkinsfile,直接调用这些环境变量即可获取所需信息:
pipeline { agent { label 'maven' } stages { stage('Build') { steps{ sh "echo 触发构建的Git仓库: ${env.BUILD_SOURCE_REPOSITORY_URL}" sh "echo 触发构建的分支: ${env.BUILD_SOURCE_REPOSITORY_REF}" sh "echo 触发构建的提交哈希: ${env.BUILD_COMMIT}" } } } }
额外说明
- 你的BuildConfig配置中
source.type: None是合理的——JenkinsPipelineStrategy不需要提前指定代码源,Webhook触发时会通过环境变量传递必要的Git信息。 - 如果需要获取Webhook载荷中的更细节内容(比如提交描述、PR编号等),可以通过读取OpenShift构建对象的
metadata.annotations来获取触发器的原始载荷,但通常上述三个变量已经满足大部分构建需求。
内容的提问来源于stack exchange,提问作者RakeshKShukla
相关产品推荐
相关产品推荐

