我正在尝试从 GitHub Actions Beta(YAML 的)中运行的工作流将代码推送到 GitHub 存储库。这很容易做到,只需在将远程 URLgit push
设置为包含凭据的 URL 后运行origin
,以便 Git 知道如何使用 GitHub 进行身份验证。
GitHub Actions 甚至获得了一个开箱即用的 PAT: GITHUB_TOKEN
,它可以被使用,并且整个系统足够智能,可以知道在使用已知与先前工作流运行相关联的 PAT 将提交推送到存储库时不会安排另一个操作。
这很好,但是,有使用自定义 PAT 的用例(在我的情况下,触发 GitHub Pages 构建,开箱即用的 PAT 不会这样做)并且使用自定义 PAT 失去了让 GitHub 知道的优势从当前工作流程推送提交后,不要运行另一个工作流程。
因此,当使用自定义 PAT 时,人们会发现自己处于工作流程的无限循环中。许多 CI 解决方案***NO_CI***
在提交消息中尊重并且不会运行任何检查/构建/如果此字符串存在于提交消息中。GitHub Actions Beta 不关心它。
我唯一能想到的就是使 GitHub Action 工作流作业/步骤有条件并构造如下条件:
- if: !contains(github.commit_message, "***NO_CI***")
但是,github
上下文对象没有包含提交消息的字段,并且上下文似乎不够表达,无法让我运行命令以使用 Git 从 SHA 获取提交消息并在其contains
上运行。
我有任何选择来实现这一目标吗?