确保Github Actions中的工作流只触发过一次



我有一个在特定文件更改时触发的工作流。是否可以确保只有在第一次更改文件时才触发此工作流?

用例是:

  • 存储库是从模板存储库创建的
  • 为了初始化README和repo中的其他内容,可以在JSON配置文件中设置一些变量
  • 一旦提交了该文件,工作流就会运行,从模板中创建README等

我试着让工作流在提交和推送更改的文件之前删除自己。这不起作用:fatal: not in a git directoryfatal: unsafe repository ('/github/workspace' is owned by someone else)

可行的方法是在工作流结束时将类似initialized的主题添加到repo中,并在工作流开始时检查该主题是否存在。然而,这感觉像是一次黑客攻击,因为我滥用话题,做一些他们可能不想做的事情。

因此,我的问题仍然存在:是否有一种只运行一次工作流的好方法?

在frenky的评论的帮助下,我使用GitHub CLI禁用了工作流,从而解决了这个问题。

以下是工作流末尾的步骤:

- name: Disable this workflow
shell: bash
run: |
gh workflow disable -R $GITHUB_REPOSITORY "${{ github.workflow }}"
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

最新更新