Gitlab CI/CD 动态切换作业到手动模式
Gitlab CI/CD switching job to manual mode dynamically
有什么方法可以动态地将作业切换到手动模式(反之亦然)?
因此,gitlab-ci.yml
文件中没有 when: manual
,而是根据任何动态检查将其切换为手动(或相反)。
示例:缺少环境变量的配置,阻止它成为 运行,但如果用户在启动时设置变量,则可以稍后 运行 它。
只是玩弄当前的语法,它可能像:
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- echo "Deploying $my_var..."
when: manual && [[ ! $my_var ]] # Using shell syntax just as an example of the condition
而不是失败:
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- [[ ! $my_var ]] && echo "my_var is undefined" && exit 1
- echo "Deploying $my_var..."
您可以尝试使用 rules
根据您在作业 script
中设置的变量设置条件。
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- export my_var
rules:
- if: $my_var
when: manual
如果使用下面的示例,您可以使用规则
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- echo "Deploying $my_var..."
rules:
- if: $my_var
when: on_success
- if: !$my_var
when: manual
因此,如果设置了 var,它将自动 运行。如果未设置,则将变为手动过程
参考:Gitlab Rules
有什么方法可以动态地将作业切换到手动模式(反之亦然)?
因此,gitlab-ci.yml
文件中没有 when: manual
,而是根据任何动态检查将其切换为手动(或相反)。
示例:缺少环境变量的配置,阻止它成为 运行,但如果用户在启动时设置变量,则可以稍后 运行 它。
只是玩弄当前的语法,它可能像:
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- echo "Deploying $my_var..."
when: manual && [[ ! $my_var ]] # Using shell syntax just as an example of the condition
而不是失败:
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- [[ ! $my_var ]] && echo "my_var is undefined" && exit 1
- echo "Deploying $my_var..."
您可以尝试使用 rules
根据您在作业 script
中设置的变量设置条件。
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- export my_var
rules:
- if: $my_var
when: manual
如果使用下面的示例,您可以使用规则
myjob:
stage: deploy
environment: proj-shared-env-qa
script:
- echo "Deploying $my_var..."
rules:
- if: $my_var
when: on_success
- if: !$my_var
when: manual
因此,如果设置了 var,它将自动 运行。如果未设置,则将变为手动过程
参考:Gitlab Rules