Ric*_*key 9 git github github-actions nrwl-nx
我在一个新项目中使用Nx来支持 monorepo。Nx 的一个好处是它可以确定 monorepo 中的哪些应用程序受到一系列更改(开始提交、结束提交)的影响。因此,如果您有一堆应用程序,您只需构建、测试和部署实际受更改影响的应用程序,而不是整个 monorepo。
我想设置一个 GitHub Action 工作流程,以仅在推送或合并到 master 时部署受影响的应用程序。但是,我无法弄清楚如何获得更改范围的“开始提交”。换句话说,如何获取上次部署的提交哈希?
GitHub 提供了一个 env 变量,GITHUB_SHA但这是触发工作流程的提交(即“结束提交”)。它还提供GITHUB_BASE_REF但仅适用于从分叉仓库运行的工作流与头部仓库相比。
CircleCIpipeline.git.base_revision为此目的。GitHub Actions 有类似的东西吗?
pet*_*ans 15
对于拉取请求事件,可以在 github 上下文中找到基础的 ref 和 sha,如下所示。
${{ github.event.pull_request.base.ref }}
${{ github.event.pull_request.base.sha }}
Run Code Online (Sandbox Code Playgroud)
对于推送事件,有base_ref和before参数。
${{ github.event.base_ref }}
${{ github.event.before }}
Run Code Online (Sandbox Code Playgroud)
before是最后一个在 branch 上推送到 origin 的 git sha base_ref。请注意,如果这是新分支上的第一次提交,base_ref并且before将具有如下所示的空/默认值。
##[debug] "event": {
##[debug] "after": "727f7aec97c394083d769029e5f619e9b094a235",
##[debug] "base_ref": null,
##[debug] "before": "0000000000000000000000000000000000000000",
...
Run Code Online (Sandbox Code Playgroud)
顺便说一下,您可以通过将此步骤添加到您的工作流程中来转储 github 上下文并检查可用参数:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3131 次 |
| 最近记录: |