gcloud函数部署时出现gitlab Ci错误

时间:2018-09-07 07:48:24

标签: bash google-cloud-functions gitlab-ci gitlab-ci-runner

我正在使用Google cloud functions yaml文件部署gitlab.ci(python)。

我的目标是更新现有的云功能(通过删除和重新部署它)或基于云功能(和区域)的名称作为输入参数来部署新功能。

下面是我写的脚本:

    #!/usr/bin/env bash

FUNCTION_NAME=$1
REGION=$2
touch functionslist.txt
gcloud beta functions list >> functionslist.txt

isInFile=$(cat functionslist.txt | grep -c FUNCTION_NAME)

if [ $isInFile -eq 0 ]; then
   echo "New Cloud Function Name, hence it shall be deployed "
else
   echo "Cloud Function Updated, hence it shall be deleted and redeployed"
   gcloud beta functions delete  ${FUNCTION_NAME} --region${REGION}
fi

此脚本在以下阶段部署中调用:

 deploy:
  stage: deploy
  image: google/cloud-sdk
  script:
    - apt-get update && apt-get --only-upgrade install kubectl google-cloud-sdk
    - gcloud config set project $GCP_PROJECT_ID
    - chmod +x delete_function.sh
    - ./delete_function.sh ${FUNCTION_NAME} ${REGION}
    - gcloud beta functions deploy ${FUNCTION_NAME} --memory ${MEMORY} --stage-bucket ${STAGE_BUCKET}  --region ${REGION}  --runtime ${RUNTIME} --trigger-http

我面临的问题是,每次我启动更新的云功能的管道时,总是考虑第一种情况,因此即使云功能已经存在,也会显示“新的云功能名称,因此将被部署”。我应该看到以下消息:“云功能已更新,因此应将其删除并重新部署”。

我编写的shell脚本可能是错误的。解决这个问题的任何想法。

0 个答案:

没有答案