我正在从 github 拉取请求中将“feature-branch”合并到“dev-branch”。我正在使用在推送到“dev-branch”时触发的谷歌云构建触发器。从我在 documentation of substitution variables 中可以看出,没有替代变量来获取我正在合并的分支的名称 - 'feature-branch',只有我合并到的分支 - 'dev-branch'。有没有一种方法或解决方法可以从推送到分支事件中获取正在从谷歌云构建触发器上合并的分支的信息(名称、sha、id 等)?
最佳答案
大概你可以在提交消息的第一行有一些命名约定(发生在 merge pull request
“event”),这样这一行就包含了源代码(或 head
) 分支名称(合并的来源 - 用你的话来说 - 'feature-branch')。
然后,您可以创建一个替换变量:
substitutions:
_COMMIT_MESSAGE: $(commit.commit.message)
这是文档链接:Creating substitutions using payload bindings
并在某些构建步骤中使用该变量来获取 head
分支名称:
mapfile -t commit_lines <<< "${_COMMIT_MESSAGE}"
source_branch="$(echo ${commit_lines[0]} | <<add your command here following naming convention for the commit message>> )"
echo "=> My source branch name: ${source_branch}"
之后您可以使用源分支名称。
关于github - 合并时如何在推送时从谷歌云构建触发器获取源分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71527668/