在我的gitlab-ci.yml中,我的脚本如下所示:
staging_deploy:
stage: deploy
script:
- ENVIRONMENT_NAME=$(aws cloudformation list-exports | jq '.Exports[] | select(.Name=="my-EnvironmentName")' | jq '{Value}' | jq '.[]')
- ENVIRONMENT_ID=$(aws elasticbeanstalk describe-environments --environment-names $ENVIRONMENT_NAME)
- 'aws elasticbeanstalk rebuild-environment --environment-id $ENVIRONMENT_ID'
- 'echo "stage deployment complete"'
三个命令在独立执行时都可以正常工作,也就是说,在我执行时
ENVIRONMENT_NAME=$(aws cloudformation list-exports | jq '.Exports[] | select(.Name=="my-EnvironmentName")' | jq '{Value}' | jq '.[]')
并打印出变量:
echo ENVIRONMENT_NAME
我得到了想要的结果。
但是,当我像一开始在脚本中一样将它们全部一起使用时,gitlab-ci中的bash表示:
用法:aws [选项] [...] [参数]要查看帮助文本,可以运行:
aws help aws help aws help
未知选项:[],},“环境”:错误:作业失败:错误 执行远程命令:命令以非零退出代码终止: 在Docker容器中执行时出错:1
好像aws cli无法识别变量$ENVIRONMENT_NAME
和$ENVIRONMENT_ID