我正在尝试使用 bitbucket 为 salesforce 设置 CI/CD。
我为每个环境(qa、uat、生产)创建了一个连接的应用程序
在 bitbucket > 存储库设置 > 部署中:
我添加了用于临时环境和生产环境的沙箱。对于每个环境,我都设置了环境变量:
USERNAME
CONSUMER_KEY
LOGIN_URL
ENVIRONMENT
像这样:
但是当我推送提交来测试部署时,
ENVIRONMENT
变量返回错误。
环境变量未设置
我在脚本中使用 echo 来记录错误
set -e
# echo is used to print the message on the console
echo "Starting the build process for environment: $ENVIRONMENT"
if [ -z "$ENVIRONMENT" ]; then
echo "ENVIRONMENT variable is not set."
exit 1
fi
当前,当我明确创建
ENVIRONMENT
变量时,构建失败:
最后,这些是 bitbucket-pipelines.yml 中的部署步骤:
# Production deployment
release/master:
- step: *build-pipeline
- step: *destructive-pre
- step: *deploy-full-package
- step: *deploy-env-spec-config
- step: *destructive-post
甚至尝试将部署添加到如下所示的步骤中:
# Production deployment
release/master:
deployment: production
steps:
- step: *build-pipeline
- step: *destructive-pre
- step: *deploy-full-package
- step: *deploy-env-spec-config
- step: *destructive-post
环境变量仍然为空。
如何修复 ENVIRONMENT 变量为空的错误。
谢谢
如果有人面临同样的问题,我设法通过环境变量返回 null 来解决我的问题。 您需要在管道中使用阶段并在阶段级别定义部署,如下所示:
pipelines:
branches:
release/master:
- stage:
name: Some name for this stage
deployment: production
steps:
- step: *build-pipeline
- step: *destructive-pre
- step: *deploy-full-package
- step: *deploy-env-spec-config
- step: *destructive-post