使用 GitHub 操作将拉取请求合并到主服务器时,使用什么可预测的提交 sha?
What is a predictable commit sha to use when merging pull request to a master using GitHub actions?
我正在使用 [github-actions]。我有两个工作流程:
- 触发于
pull_request
- 触发于
push
on:
workflow_dispatch:
pull_request:
branches:
- master
on:
workflow_dispatch:
push:
branches:
- master
pull_request
工作流程生成需要在 push
工作流程中使用的资产。我需要某种允许我连接两个工作流的标识符,最好是 git 合并提交的 SHA。但是,我无法确定可使用的可靠参考。
目前我在 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-actions]。我有两个工作流程:
- 触发于
pull_request
- 触发于
push
on:
workflow_dispatch:
pull_request:
branches:
- master
on:
workflow_dispatch:
push:
branches:
- master
pull_request
工作流程生成需要在 push
工作流程中使用的资产。我需要某种允许我连接两个工作流的标识符,最好是 git 合并提交的 SHA。但是,我无法确定可使用的可靠参考。
目前我在 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