我正在使用gitlab CI进行部署。
当审查分支被删除时,我遇到了一个问题。
stop_review:
variables:
GIT_STRATEGY: none
stage: cleanup
script:
- echo "$AWS_REGION"
- echo "Stopping review branch"
- serverless config credentials --provider aws --key ${AWS_ACCESS_KEY_ID} --secret ${AWS_SECRET_ACCESS_KEY}
- echo "$CI_COMMIT_REF_NAME"
- serverless remove --stage=$CI_COMMIT_REF_NAME --verbose
only:
- branches
except:
- master
environment:
name: review/$CI_COMMIT_REF_NAME
action: stop
when: manual
错误为This command can only be run in a Serverless service directory. Make sure to reference a valid config file in the current working directory if you're using a custom config file
我试过不同的GIT_STRATEGY
,有人能给我指对方向吗?
为了运行serverless remove
,您需要有可用的serverless.yml
文件,这意味着需要克隆实际的存储库。(或者该文件需要以某种方式进入GitLab(。
当您运行serverless remove
时,需要有一个可用的serverless.yml
配置文件,因为无服务器框架允许用户不仅使用框架的YML配置,还可以使用额外的资源(如AWS中的CloudFormation(来提供基础设施,这些资源可能完全在指定的app
或stage
CF堆栈之外,也可能不在指定的之外。
事实上,您也可以将基础设施提供给其他提供商(AWS、GCP、Azure、OpenWhisk,或者实际上是这些提供商的任何组合(。
因此,在运行sls remove
时仅仅识别阶段名称是不够的,您需要完整的serverless.yml
模板。