Pho*_*sis 7 github github-actions
我正在努力将 Jenkins Pipeline 转换为 Github Actions 工作流程,并且需要一种将提交作者存储为环境变量的方法,以便稍后在 Node.js 代码中使用。
我已阅读文档,这似乎是我可以让它工作的唯一方法:
name: Feature Branch PR
on:
pull_request:
types: [opened, edited, synchronize]
push:
branches:
- '**'
Run Code Online (Sandbox Code Playgroud)
然后在 Env 部分:
env:
AUTHOR: ${{ github.event.pusher.name }}
Run Code Online (Sandbox Code Playgroud)
问题是这只适用于推送触发器。因此,如果我从 yml 工作流程顶部删除 on: Push 部分(因此它仅在 PR 上触发),那么作者信息将变为空。
我找不到一种方法来获取它的提交。有谁知道有什么办法吗?我们不希望此工作流程在推送时触发。
我也尝试过
AUTHOR: $(jq '.commits.committer.name' $GITHUB_EVENT_PATH)
Run Code Online (Sandbox Code Playgroud)
我认为这在语法上是不正确的。
对于未来遇到这个问题的任何人,我都设法解决了。
在节点代码(不是 yml)中,您可以获得包含所有可用信息的 Actions event.json 文件。要获取先前提交的作者:
const ev = JSON.parse(fs.readFileSync(process.env.GITHUB_EVENT_PATH, 'utf8'));
return ev.pull_request.user.login;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8005 次 |
| 最近记录: |