Gitlab CI循环

时间:2020-10-16 09:42:41

标签: bash shell gitlab devops gitlab-ci

我正在尝试一个用例,其中需要创建同一文件的4个不同版本。我在gitlab ci中使用循环来完成此任务。假设“ sample.json”是要创建四个版本的文件,并且该文件可用。

作业内部的代码段-

script:
 - i=1
 - no_of_configs=4
 - while [ "$i" -le "$no_of_configs" ];
 -  do
 -    cp sample.json "sample_$i.json"
 -    i=$((i + 1))
 -  done 

但是当我执行作业时,我会遇到无限循环。我也在循环内回显了i和no_of_configs的值,i的值越来越大,no_of_configs的值也恒定,即4。似乎,我在循环条件中缺少了一些东西。有什么问题吗?

1 个答案:

答案 0 :(得分:0)

多行列表中的换行符已删除,然后传递到外壳程序。因此,如果没有换行符,请写出来-记住将;放在适当的位置。

script:
 - i=1
 - no_of_configs=4
 - while [ "$i" -le "$no_of_configs" ]; do
      cp sample.json "sample_$i.json";
      i=$((i + 1));
    done 

# an alternative:
 - seq 4 | xargs -I{} cp sample.json sample_{}.json