gpt4 book ai didi

GitHub Actions ***NO_CI*** 替代方案

转载 作者:行者123 更新时间:2023-12-02 19:52:34 24 4
gpt4 key购买 nike

我正在尝试从 GitHub Actions Beta(YAML 工作流)中运行的工作流程将代码推送到 GitHub 存储库。只需运行 git push 即可轻松完成此操作设置origin后包含凭据的远程 URL,以便 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 context 对象没有包含提交消息的字段,并且上下文的表达能力似乎不足以让我运行命令以使用 Git 从 SHA 获取提交消息并运行 contains关于这一点。

我有什么选择可以实现这一目标吗?

最佳答案

您可以按照您想要的方式配置 Github Actions。

- if: "!contains(github.event.head_commit.message, '***NO_CI***')"

# dump all github context
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"

另外,在使用 时,不要忘记将句子用引号引起来!

引用: https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions

关于GitHub Actions ***NO_CI*** 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57827703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com