如何始终禁用/跳过 Github 操作中的作业?(不是步骤/动作)

U-w*_*ays 15 github github-actions cicd

我有以下工作流程:

name: CICD

# ...

jobs:
  CI:
    uses: ...
  CD:
    needs: [CI]
    uses: ...
Run Code Online (Sandbox Code Playgroud)

我遇到了一个问题,需要我暂时禁用使用其他工作流程(不仅仅是单个步骤或操作)的 CD 作业。

我尝试过的:

最近似乎有关于“跳过工作流程运行”的更新

您可以通过在提交消息中包含命令来跳过由 Push 和 Pull_request 事件触发的工作流运行。

这听起来很不方便,他们在底部提到:

您还可以禁用工作流程的运行。有关详细信息,请参阅“禁用和启用工作流程”。

您可以在其中使用 GitHub UI、REST API 或 GitHub CLI 禁用和重新启用工作流。但是,当工作流程用作可重用工作流程时,这似乎不起作用。

我也可以简单地省略逻辑:

name: CICD

# ...

jobs:
  CI:
    uses: ...
Run Code Online (Sandbox Code Playgroud)

但我想以不同的方式保留版本控制历史记录(+使我的管道明确声明该作业已禁用/跳过)

有解决方法吗?

U-w*_*ays 22

是的,您可以使用条件来控制作业执行

您可以改为使用jobs.<job_id>.if条件来阻止作业运行,除非满足条件。

因此,如果您将 CD 作业工作流程更新为无限期否定条件:

name: CICD

# ...

jobs:
  CI:
    uses: ...
  CD:
    if: false
    needs: [CI]
    uses: ...
Run Code Online (Sandbox Code Playgroud)

它会导致作业总是被跳过(即“禁用”)。