gitlab-ci - Gitlab CI/CD 动态切换作业到手动模式
问题描述
有没有办法动态地将工作切换到手动模式(反之亦然)?
因此,根据任何动态检查,它将切换到手动(或相反) ,而不是when: manual
在文件中。gitlab-ci.yml
示例:缺少环境变量的配置会阻止它运行,但如果用户在启动时设置变量,则用户可以稍后运行它。
只是使用当前的语法,它可能是这样的:
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..."
解决方案
如果使用以下示例,您可以使用规则
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 规则
推荐阅读
- php - 如何使用 LimitInternalRecursion 修复 500 内部服务器错误
- xquery - 地图元素之一导致 SEPM0017 错误
- java - 是否可以从文本文件中读取文件结构并使用 JAVA 跟踪父节点和子节点?
- azure - Azure 数据工厂:源数据集具有用户定义的表类型的存储过程
- json - 是否可以动态过滤 JSON 对象,以便使用 Angular 仅显示与过滤器文本匹配的字段?
- ssl - IIS 10 中缺少 SSL 证书下拉列表
- asp.net - 响应标头 Content-Type 根据我用来发送请求的程序而改变
- javascript - Firebase 在尝试上传文件时给出“ERROR error [object Object]”
- java - 嵌入式 tomcat 中的 JAX-RS (Jersey) webapp 在 IDE 中工作,但不能作为 JAR
- r - 当R中的列中的值相似时迭代一个值