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

Ensure that a workflow in Github Actions is only ever triggered once

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

用例是:

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

可能有用的方法是在工作流结束时向存储库添加一个类似 initialized 的主题,并在工作流开始时检查该主题是否存在。然而,这感觉像是一种黑客攻击,因为我滥用主题来做一些他们可能不打算做的事情。

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

借助 I managed to do solve this by using the GitHub CLI 的评论禁用工作流

这是执行此操作的工作流程末尾的步骤:

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