当我在工作流程中使用时
github.ref_name
,它没有为我提供触发此工作流程的分支名称。我明白了16/merge
。为什么?当我使用 github.ref_type
时,我清楚地看到我的引用类型是 branch
那么为什么我没有得到分支名称?
当我使用
$GITHUB_REF
或 git symbolic-ref HEAD
(并将 refs/heads/
分开)时也会显示。啊,我尝试了github.event.push.ref
,但它没有向我显示任何内容。
如何从触发工作流的位置始终获取分支名称?
对于以下代码:
Run echo running on branch ${GITHUB_REF##*/} ${GITHUB_REF}
当您的工作流程因推送事件而运行时,您将得到:
running on branch main refs/heads/main
但是对于拉取请求事件,它将是:
running on branch merge refs/pull/3/merge
如果存储库位于 GitHub 上并且您有任何已打开的拉取请求,您将获得这些前缀为 refs/pull/ 的引用。这些基本上是分支,但由于它们不在 refs/heads/ 下,当您从服务器克隆或获取时,您无法正常获取它们 — 获取过程通常会忽略它们。
您也可以检查这个问题这里