You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket Pipeline部署变量异常:$SENTRY_PROJECT_NAME无法读取部署环境变量

问题原因与解决方案:Bitbucket Pipeline部署环境变量无法读取

问题原因

Bitbucket的**部署环境变量(Deployment variables)**仅会注入到明确标记了deployment字段的Pipeline步骤中。你当前的「Upload source maps to Sentry」步骤没有配置deployment: staging,因此该步骤无法获取到staging部署环境下的变量,导致$SENTRY_PROJECT_NAME为空报错。

正确使用方法

方案1:给目标步骤添加部署环境标记(推荐)

直接在Sentry步骤中添加deployment: staging配置,让该步骤加载对应环境的部署变量,实现同名变量按环境区分值的需求:

- step:
    name: Upload source maps to Sentry
    image: getsentry/sentry-cli:2.40.0
    deployment: staging  # 新增部署环境标记
    script:
      - sentry-cli sourcemaps inject --org XXX --project $SENTRY_PROJECT_NAME ./dist
      - sentry-cli sourcemaps upload --org XXX --project $SENTRY_PROJECT_NAME --auth-token $SENTRY_AUTH_TOKEN ./dist

配置后,该步骤会自动加载staging环境下的所有部署变量,包括你配置的SENTRY_PROJECT_NAME,后续新增其他环境(如production)时,只需在对应分支的步骤中设置deployment: production,并在部署环境中配置同名变量即可。

方案2:分支条件动态赋值(备选)

如果不需要给该步骤启用部署环境的其他特性,也可以通过分支判断动态赋值变量:

- step:
    name: Upload source maps to Sentry
    image: getsentry/sentry-cli:2.40.0
    script:
      - |
        # 根据当前分支匹配对应环境变量
        if [ "$BITBUCKET_BRANCH" = "staging" ]; then
          export SENTRY_PROJECT_NAME=$SENTRY_PROJECT_NAME_STAGING
        elif [ "$BITBUCKET_BRANCH" = "production" ]; then
          export SENTRY_PROJECT_NAME=$SENTRY_PROJECT_NAME_PRODUCTION
        fi
      - sentry-cli sourcemaps inject --org XXX --project $SENTRY_PROJECT_NAME ./dist
      - sentry-cli sourcemaps upload --org XXX --project $SENTRY_PROJECT_NAME --auth-token $SENTRY_AUTH_TOKEN ./dist

这种方式无需依赖部署标记,但维护成本高于方案1,仅适合特殊场景使用。

注意事项

  • 部署环境变量的作用域严格绑定到标记了对应deployment的步骤,未标记的步骤只能读取仓库变量(Repository variables)和全局变量。
  • 确认部署环境变量的名称在对应环境下配置正确,无拼写错误。

内容的提问来源于stack exchange,提问作者Kristjan O.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:30:11