我想在GitLab CI文件中编写while循环,这是我尝试过的语法,但似乎无法正常工作。
GitLab或YAML文件中的while循环是否得到授权?还是有其他写方法?
这是我用过的地方:
- while ($(curl -X GET ${URL} | jq -r '.task.status') != "SUCCESS")
ANALYSIS_ID=$(curl -X GET ${URL} | jq -r '.task.analysisId')
答案 0 :(得分:1)
为什么不编写自己的shell/python/whatever
脚本,而仅从CI运行它?
YAML不是执行此类操作的合适语言(例如while loops, large conditions, for loops
),因此不应以这种方式使用...
答案 1 :(得分:0)
所以我这样做是为了解决我的问题,它创建了一个脚本,在其中我编写了循环而,此脚本返回了我需要的值,然后在我的脚本中调用了该脚本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"