Bitbucket自定义手动部署流水线未正确加载Staging环境变量
Bitbucket自定义流水线任务未加载Staging部署变量的解决方案
可能的原因及解决步骤
1. 核对部署环境变量的配置
- 进入仓库的Settings > Pipelines > Deployments,确认
staging环境已创建,且添加了与仓库级开发变量同名的部署变量(比如FIREBASE_PROJECT=app-staging)。Bitbucket的规则是:部署级变量会覆盖同名的仓库级变量,若变量名称不一致则不会触发覆盖。 - 检查部署级变量的取值是否正确,避免误填为开发环境的值。
2. 检查staging.sh脚本的变量引用逻辑
- 打开
scripts/staging.sh,确认脚本中是通过环境变量调用配置,而非硬编码开发环境信息。例如:
正确写法:
错误写法(硬编码dev项目):firebase deploy --project "$FIREBASE_PROJECT" --only hostingfirebase deploy --project app-dev --only hosting - 若脚本依赖其他变量,需确保这些变量已在
staging部署环境中正确配置。
3. 验证自定义流水线的触发上下文
- 手动运行
manualStagingDeploy任务时,确认Bitbucket触发界面显示的关联环境为staging,而非默认的开发环境。若有环境选择选项,务必选中staging。
4. 日志排查变量注入情况
- 在
staging.sh开头添加调试语句,输出关键变量值:echo "DEBUG: FIREBASE_PROJECT = $FIREBASE_PROJECT" - 重新运行任务后,查看流水线日志的开头部分,确认
Injecting environment variables区域是否加载了staging环境的变量,同时检查调试语句的输出是否符合预期。
5. 确认部署环境名称的大小写匹配
Bitbucket的部署环境名称大小写敏感,需确保bitbucket-pipelines.yml中deployment: staging的取值与仓库配置的部署环境名称完全一致(比如不能是Staging或STAGING)。
内容的提问来源于stack exchange,提问作者akaHeimdall
相关产品推荐
相关产品推荐

