我正在学习Jenkins,并尝试使用StashNotifier通知Stash存储库A
的构建状态,即SUCCESS
或FAILED
。由于存储库A
取决于存储库B
和存储库C
,因此我使用以下代码将存储库B
和C
也插入到构建工作区中。
checkout resolveScm(source: [$class: 'GitSCMSource', remote: "ssh://git@stash.org:8888/group/repo_B.git",
credentialsId: '...omitted...', includes: '*', excludes: '',
extensions: [[$class: 'SubmoduleOption', parentCredentials: true, recursiveSubmodules: true]]],
targets: [BRANCH_NAME, "${java.net.URLEncoder.encode(env.BRANCH_NAME, "UTF-8")}"])
checkout resolveScm(source: [$class: 'GitSCMSource', remote: "ssh://git@stash.org:8888/group/repo_C.git",
credentialsId: '...omitted...', includes: '*', excludes: '',
extensions: [[$class: 'SubmoduleOption', parentCredentials: true, recursiveSubmodules: true]]],
targets: [BRANCH_NAME, "${java.net.URLEncoder.encode(env.BRANCH_NAME, "UTF-8")}"])
StashNotifier的配置如下:
step([$class: 'StashNotifier'])
但是,在构建之后,将通知所有三个存储库。是否只能通知仓库A
以及如何通知?
答案 0 :(得分:0)
根据StashNotifier的source code,如果在使用StashNotifier时未给出commitSha1
,则将收集所有提交,因此将通知所有存储库。只要指定了commitSha1
,就只会通知指定的仓库。
首先,使用
获取提交哈希checkout scm
env.GIT_COMMIT = sh(script: "git rev-parse HEAD", returnStdout: true).trim()
然后在管道中,通过以下方式通知隐藏:
step([$class: 'StashNotifier',
commitSha1: "${env.GIT_COMMIT}"])