我有以下工作流程:
name: CICD
# ...
jobs:
CI:
uses: ...
CD:
needs: [CI]
uses: ...
我遇到了一个问题,需要我暂时禁用使用其他工作流(不仅仅是单个步骤或操作)的CD作业。
我试过了:
最近似乎有关于"跳过工作流运行"的更新
通过在提交消息中包含一个命令,可以跳过由push和pull_request事件触发的工作流运行。
这听起来不方便,在底部他们提到:
您还可以禁用工作流的运行。有关详细信息,请参见"禁用和启用工作流"。
你可以使用GitHub UI、REST API或GitHub CLI禁用和重新启用工作流。然而,当工作流被用作可重用工作流时,这似乎不起作用。
我也可以简单地省略逻辑:
name: CICD
# ...
jobs:
CI:
uses: ...
但是我想以不同的方式保存版本控制历史(+让我的管道显式地声明作业被禁用/跳过)
有解决方法吗?
是的,您可以使用条件来控制作业的执行:
您可以使用
jobs.<job_id>.if
条件来阻止作业运行,除非满足某个条件。
因此,如果您将CD作业工作流更新为无限期否定条件:
name: CICD
# ...
jobs:
CI:
uses: ...
CD:
if: false
needs: [CI]
uses: ...
它将导致作业总是被跳过(即"禁用")。