gpt4 book ai didi

if-statement - 如何在 gitlab ci 中使用 if-else 条件

转载 作者:行者123 更新时间:2023-12-03 15:17:13 25 4
gpt4 key购买 nike

如何在 gitlab-CI 中使用 if else 条件。

我有以下代码:

deploy-dev:
image: testimage
environment: dev
tags:
- kubectl
script:
- kubectl apply -f demo1 --record=true
- kubectl apply -f demo2 --record=true

现在我想添加一个这样的条件
script:
- (if [ "$flag" == "true" ]; then kubectl apply -f demo1 --record=true; else kubectl apply -f demo2 --record=true);

有人可以提供相同的正确语法吗? gitlabci 中是否有任何有关条件(if-else、for 循环)的文档?

最佳答案

下面是这种语句的三个语法选项。来自 gitlab-ci documentation :
使用 shell 变量

deploy-dev:
image: testimage
environment: dev
tags:
- kubectl
script:
- if [ "$flag" == "true" ]; then MODULE="demo1"; else MODULE="demo2"; fi
- kubectl apply -f ${MODULE} --record=true
在 yaml 多行块中使用 shell 变量
deploy-dev:
image: testimage
environment: dev
tags:
- kubectl
script:
- >
if [ "$flag" == "true" ]; then
kubectl apply -f demo1 --record=true
else
kubectl apply -f demo2 --record=true
fi
使用 gitlab 规则
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- if: '$CI_PIPELINE_SOURCE == "push"'
when: never
- when: always
使用 gitlab 模板和变量
demo1-deploy-dev:
extends: .deploy-dev
only:
variables: [ $flag == "true" ]
variables:
MODULE: demo1

demo2-deploy-dev:
extends: .deploy-dev
only:
variables: [ $flag == "false" ]
variables:
MODULE: demo2

.deploy-dev:
image: testimage
environment: dev
tags:
- kubectl
script:
- kubectl apply -f ${MODULE} --record=true

关于if-statement - 如何在 gitlab ci 中使用 if-else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54761464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com