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

12

我有以下的工作流程:

name: CICD

# ...

jobs:
  CI:
    uses: ...
  CD:
    needs: [CI]
    uses: ...

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

我尝试过的:

最近似乎有一个关于"跳过工作流运行"的更新

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

听起来有些不方便,在底部他们提到:

您还可以禁用工作流程的运行。有关更多信息,请参见 "禁用和启用工作流程。"

在 GitHub UI、REST API 或 GitHub CLI 中使用此功能可以禁用和重新启用工作流程。然而,当工作流作为可重复使用的工作流程序时,这似乎无法正常工作。

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

name: CICD

# ...

jobs:
  CI:
    uses: ...

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

有解决方法吗?

1个回答

16

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

您可以使用jobs.<job_id>.if条件来防止作业在未满足条件时运行。

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

name: CICD

# ...

jobs:
  CI:
    uses: ...
  CD:
    if: false
    needs: [CI]
    uses: ...

这将导致作业始终被跳过(即“禁用”)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接