0

我想在我的 gitlab ci/cd yml 文件的变量中使用数组,如下所示:

variables:
    myarrray: ['abc', 'dcef' ]
....
script: |
    echo myarray[0]  myarray[1]

但 Lint 告诉我文件不正确:

variables config should be a hash of key value pairs, value can be a hash

我试过下一个:

variables:
    arr[0]: 'abc'
    arr[1]: 'cde'
....
script: |
    echo $arr[0] $arr[1]

但是构建失败并打印出 bash 错误:

bash: line 128: export: `arr[0]': not a valid identifier

有没有办法在 .gitlab-ci.yml 文件中使用数组变量?

4

2 回答 2

2

根据文档,这是您应该做的:

无法创建作为值数组的 CI/CD 变量,但您可以使用 shell 脚本技术来实现类似的行为。

例如,您可以在一个变量中存储多个用空格分隔的变量,然后使用脚本循环遍历这些值:

job1:
  variables:
    FOLDERS: src test docs
  script:
    - |
      for FOLDER in $FOLDERS
        do
          echo "The path is root/${FOLDER}"
        done
于 2021-11-17T15:21:52.163 回答
0

经过一番调查,我找到了一些替代解决方案。也许它可能对某人有用:

variables:
    # Name of using set
    targetType: 'test'

    # Variables set test
    X_test: 'TestValue'

    # Variables set dev
    X_dev: 'DevValue'

    # Name of variable from effective set
    X_curName: 'X_$targetType'

.....

script: |
    echo Variable X_ is ${!X_curName} # prints TestValue
于 2021-11-18T08:51:19.743 回答