如何修复 shippable.yml 文件中的 "length must be less than 40" 错误?
How to fix "length must be less than 40" error in shippable.yml file?
Shippable CI UI 显示以下错误:
错误:检测到 1 个验证错误:'environmentNames'
处的值 '[if [ develop == master ]; then xxx-xx-prod; else xxx-xx-dev; fi]'
未能满足约束:成员必须满足约束:[成员的长度必须小于或等于 40,成员必须具有长度大于等于4]
这是我的 shippable.yml 文件:
branches:
only:
- develop
- master
build:
ci:
- "echo 'CI is running'"
post_ci:
- "docker build -t=\"xxxx/xxx-xxxx:$BRANCH.$BUILD_NUMBER\" ."
- "docker push xxxx/xxx-xxx:$BRANCH.$BUILD_NUMBER"
- "pip install --upgrade botocore"
- "pip install setuptools==34.0.1"
integrations:
deploy:
-
application_name: seamless-ai
env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi
image_name: xxxx/xxx-xxx
image_tag: $BRANCH.$BUILD_NUMBER
integrationName: AWS-int
region: us-east-1
type: aws
hub:
-
integrationName: "Docker Hub"
type: docker
language: node_js
基本上,我的问题如下:
env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi
基本上我需要做的是:
如果分支是master,那么env_name
必须是xxx-xx-prod
否则,那么env_name
= xxx-xx-dev
我该如何解决这个问题?
因为我们看到 $BRANCH
在值内部进行评估,一个可能的解决方案是将它写入环境变量,然后替换它。
这可以通过将此行添加到 post-ci
:
- if [ "$BRANCH" == "master" ]; then export ENV_NAME="xxx-xx-prod"; else export ENV_NAME="xxx-xx-dev"; fi
然后在 deploy
:
env_name: $ENV_NAME
我不知道这是否真的有效。
Shippable CI UI 显示以下错误:
错误:检测到 1 个验证错误:'environmentNames'
处的值 '[if [ develop == master ]; then xxx-xx-prod; else xxx-xx-dev; fi]'
未能满足约束:成员必须满足约束:[成员的长度必须小于或等于 40,成员必须具有长度大于等于4]
这是我的 shippable.yml 文件:
branches:
only:
- develop
- master
build:
ci:
- "echo 'CI is running'"
post_ci:
- "docker build -t=\"xxxx/xxx-xxxx:$BRANCH.$BUILD_NUMBER\" ."
- "docker push xxxx/xxx-xxx:$BRANCH.$BUILD_NUMBER"
- "pip install --upgrade botocore"
- "pip install setuptools==34.0.1"
integrations:
deploy:
-
application_name: seamless-ai
env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi
image_name: xxxx/xxx-xxx
image_tag: $BRANCH.$BUILD_NUMBER
integrationName: AWS-int
region: us-east-1
type: aws
hub:
-
integrationName: "Docker Hub"
type: docker
language: node_js
基本上,我的问题如下:
env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi
基本上我需要做的是:
如果分支是master,那么env_name
必须是xxx-xx-prod
否则,那么env_name
= xxx-xx-dev
我该如何解决这个问题?
因为我们看到 $BRANCH
在值内部进行评估,一个可能的解决方案是将它写入环境变量,然后替换它。
这可以通过将此行添加到 post-ci
:
- if [ "$BRANCH" == "master" ]; then export ENV_NAME="xxx-xx-prod"; else export ENV_NAME="xxx-xx-dev"; fi
然后在 deploy
:
env_name: $ENV_NAME
我不知道这是否真的有效。