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

问题描述 投票:1回答:2

如何在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循环)的文档吗?

if-statement gitlab-ci
2个回答
12
投票

下面是这种语句的三种语法选项。

Using shell variable

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

Using yaml multiline block

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

Using gitlab templates and variables

demo1-deploy-dev:
variables:
  MODULE: demo1

demo2-deploy-dev:
variables:
  MODULE: demo2

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

0
投票

我想你需要添加一个分号并在结尾处关闭“fi”。我找不到文档的链接。

script:
    - (if [ "$flag" == "true" ]; then kubectl apply -f demo1 --record=true; else kubectl apply -f demo2 --record=true; fi);
© www.soinside.com 2019 - 2024. All rights reserved.