Правильный синтаксис для цикла while в файле конфигурации GitLab - PullRequest
1 голос
/ 27 мая 2019

Я хочу написать цикл while в файле GitLab CI, и вот синтаксис, который я пробовал, но, похоже, не работает.

Разрешен ли цикл while в файлах GitLab или YAML? Или есть другие способы написать это?

Вот где я это использовал:

  - while ($(curl -X GET ${URL} | jq -r '.task.status') != "SUCCESS")
   ANALYSIS_ID=$(curl -X GET ${URL} | jq -r '.task.analysisId')

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Почему бы вам не написать себе shell/python/whatever скрипт и просто запустить его из CI?

YAML не подходит для таких целей (например, while loops, large conditions, for loops) и не должен использоваться таким образом ...

0 голосов
/ 30 мая 2019

Итак, я сделал это, чтобы решить мою проблему, создать сценарий, в котором я написал цикл, а и этот сценарий возвращает нужное мне значение, а затем я вызвал этот сценарий в своем gitlab_ci. файл как ниже:

  - ANALYSIS_ID=$(**./checkUrl.sh** $URL)

И, если нужно, в качестве примера, скрипт, который я использовал

  #!/bin/bash
    success="SUCCESS"
    condition="$(curl -X GET "$1" | jq -r '.task.status')"

    while [ "$condition" != "$success" ]
    do
    ANALYSIS_Id="$(curl -X GET "$1" | jq -r '.task.analysisId')"
    done
    return "$ANALYSIS_Id"
...