我在一个新项目中使用 Nx 来支持单体存储库。Nx 的一个好处是它可以确定受一系列更改(起始提交,结束提交)影响的单体存储库中的应用程序。因此,如果您有许多应用程序,只需构建、测试和部署实际受更改影响的应用程序,而不是整个单体存储库。
我想设置一个 GitHub Action 工作流,在 push 或者合并到主分支时只部署受影响的应用程序。但是,我遇到了一个问题,无法确定如何获取“起始提交”以进行更改范围的计算。换句话说,如何获得上次部署的提交哈希值?
GitHub 提供一个环境变量
CircleCI 为此提供了
我想设置一个 GitHub Action 工作流,在 push 或者合并到主分支时只部署受影响的应用程序。但是,我遇到了一个问题,无法确定如何获取“起始提交”以进行更改范围的计算。换句话说,如何获得上次部署的提交哈希值?
GitHub 提供一个环境变量
GITHUB_SHA
,但这是触发工作流的提交(“结束提交”)。它还提供了GITHUB_BASE_REF
,但这仅适用于从 forked 存储库比较到 head 存储库运行的工作流。CircleCI 为此提供了
pipeline.git.base_revision
。GitHub Actions 有类似的东西吗?
github.event.before
的值。我甚至尝试同时推送两个提交,before值也是正确的。不确定为什么这对您没有起作用,但这正是我正在寻找的! - Rich McCluskeybefore
没有值。我稍微更新了答案,以便将来遇到此问题的人可以参考。 - peterevansactions/checkout
中添加fetch-depth: 0
。这将获取所有标签和分支的历史记录。请参见此处。 - peterevans