【发布时间】:2021-08-15 15:06:54
【问题描述】:
我尝试在我的 gitlab 配置文件中创建这样的函数:
deploy:
stage: dev
services:
- docker:dind
script:
- myFunction () { api_pl_tmp=$(curl -s --header "PRIVATE-TOKEN: $TOKEN_VAR" "https://git.example.ru/api/v4/projects/1/pipelines/latest" | jq .) }
- while myFunction; do
- if [ $(echo $api_pl_tmp | jq -r .status) = "success" ]
- then
- export PROJECT_CURRENT=$($api_pl_tmp | jq -r '{id:.id,sha:.sha[0:8]}' | base64)
- break
- fi
- if [ $(echo $api_pl_tmp | jq -r .status) = "failed" ]
- then
- echo "Error: Frontend can't be deployed!"
- exit 1
- fi
- if [ $(echo $api_pl_tmp | jq -r .status) = "running" ]
- then
- echo "Wait 5 sec... Frontend deploying!"
- sleep 5
- else
- echo Unknow status $(echo $api_pl_tmp | jq -r .status)
- exit 1
- fi
- done
但它不起作用,gitlab 向我返回错误消息:
此 GitLab CI 配置无效:jobs:deploy-to-dev:script config 应该是一个字符串或最多 10 级的字符串嵌套数组 很深的
我该如何解决这个问题,或者我的自定义函数有错误?
【问题讨论】:
-
也许也可以将我的函数与
shell文件分开?
标签: bash gitlab gitlab-ci cicd