在使用GitHub操作将请求合并到主服务器时,应使用什么可预测的提交SHA? [英] What is a predictable commit sha to use when merging pull request to a master using GitHub actions?
本文介绍了在使用GitHub操作将请求合并到主服务器时,应使用什么可预测的提交SHA?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用[GitHub-Actions]。我有两个工作流:
- 触发于
pull_request
- 触发于
push
on:
workflow_dispatch:
pull_request:
branches:
- master
on:
workflow_dispatch:
push:
branches:
- master
pull_request
工作流会生成需要在push
工作流中使用的资产。我需要某种标识符来连接这两个工作流,理想情况下是SHA of Git Merge Commit。但是,我找不到可靠的参考资料来使用。
目前我在pull_request
工作流中使用${{ github.event.pull_request.head.sha }}
,在push
工作流中使用:
- name: Setup repository
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Set CI_COMMIT_SHORT_SHA env property
shell: bash
run: echo "CI_COMMIT_SHORT_SHA=$(git rev-parse --short=8 HEAD^2)" >> $GITHUB_ENV
这在大多数情况下都有效,但在合并前将提交强制推送到PR分支时会中断。
将pull_request
与push
工作流相关联的git引用是什么?
推荐答案
如果您希望仅在PR合并到MASTER时触发第二个工作流,则可以使用pull_request.closed
事件。在该工作流程中,$GITHUB_REF
应该会为您提供对PR合并分支的引用(ReFS/Pull/:prNumber/Merge)。将这两个工作流绑定在一起对您有效吗?
on:
pull_request:
branches:
- master
types: [closed]
还请注意,要忽略未合并的已关闭PR,您需要在作业中添加条件以在这种情况下跳过它:if: github.event.pull_request.merged == true
这篇关于在使用GitHub操作将请求合并到主服务器时,应使用什么可预测的提交SHA?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文