我有以下 GitLab-ci YAML 文件。手动作业将被跳过,并且即使未触发手动作业,管道也会成功完成。
我该如何修复它以及为什么会发生这种情况?
stages:
- stage1
- stage2
job1:
stage: stage1
script:
- echo "this is an automatic job"
manual_job:
stage: stage2
script:
- echo "This is a manual job"
when: manual
Run Code Online (Sandbox Code Playgroud)
小智 5
发生这种情况是因为手动作业被认为是可选的,不需要运行。
在内部,手动作业默认将allow_failure设置为true,这意味着这些跳过的手动作业不会导致管道故障。下面的 YAML 代码演示了如何编写手动作业,这会产生相同的行为。该作业不会自动启动,会被跳过,并且管道会通过。
stages:
- stage1
- stage2
job1:
stage: stage1
script:
- echo "this is an automatic job"
manual_job:
stage: stage2
script:
- echo "This is a manual job"
when: manual
allow_failure: false
Run Code Online (Sandbox Code Playgroud)
您可以将任何作业的allow_failure设置为true,包括手动作业和自动作业,然后管道不关心作业是否运行成功。