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

如何在Bitbucket Pipelines构建时替换environment.ts的logglyKey并解决提取问题?

解决Bitbucket Pipelines中替换environment.ts里logglyKey的问题

我来帮你搞定这个问题——你当前的grep命令因为正则表达式的问题,没法正确捕获logglyKey的值,我先帮你修正提取逻辑,再给你一套完整的Bitbucket Pipelines替换流程。

先看你grep命令的问题

你的正则'logglyKey'\s*:\s*'([A-Za-z0-9-])'有两个明显的问题:

  1. 括号里的([A-Za-z0-9-])只匹配单个字符,但你的logglyKey是一串带连字符的长字符串,得用+来匹配多个字符,也就是([A-Za-z0-9-]+)
  2. 另外,你如果想直接提取key值(不带引号和前面的键名),可以用Perl正则的\K特性简化操作

修正后的提取命令

如果只是想提取当前的logglyKey,用这个命令就够了:

OLD_LOGGLY_KEY=$(grep -oP "logglyKey\s*:\s*'\K[A-Za-z0-9-]+" ./src/environments/environment.ts)
echo "Previous logglyKey was: ${OLD_LOGGLY_KEY}"

这里的\K会忽略掉前面匹配的logglyKey: '部分,直接返回后面的key值,不用再额外处理引号。


完整的替换方案(适配Bitbucket Pipelines)

其实不需要单独提取,直接用sed原地修改文件更高效,下面是完整的addLogglyKey.sh脚本:

#!/bin/bash

# 可选:提取并打印旧的logglyKey,用于日志排查
OLD_LOGGLY_KEY=$(grep -oP "logglyKey\s*:\s*'\K[A-Za-z0-9-]+" ./src/environments/environment.ts)
echo "Previous logglyKey was: ${OLD_LOGGLY_KEY}"

# 用Bitbucket Pipelines的环境变量替换logglyKey
# 假设你在Bitbucket仓库变量里设置的环境变量叫 BITBUCKET_LOGGLY_KEY
sed -i "s/logglyKey\s*:\s*'[A-Za-z0-9-]*'/logglyKey: '${BITBUCKET_LOGGLY_KEY}'/" ./src/environments/environment.ts

# 可选:验证替换结果
NEW_LOGGLY_KEY=$(grep -oP "logglyKey\s*:\s*'\K[A-Za-z0-9-]+" ./src/environments/environment.ts)
echo "New logglyKey is: ${NEW_LOGGLY_KEY}"

配置Bitbucket Pipelines

  1. 先去你的Bitbucket仓库的 Repository settings > Repository variables 里添加BITBUCKET_LOGGLY_KEY变量,值填你要替换的logglyKey。
  2. 然后修改bitbucket-pipelines.yml,添加执行脚本的步骤:
pipelines:
  default:
    - step:
        name: Replace Loggly Key
        image: alpine:latest # 轻量Linux镜像,也可以用你项目的基础镜像
        script:
          - chmod +x ./addLogglyKey.sh # 给脚本加执行权限
          - ./addLogglyKey.sh
        artifacts:
          - src/environments/environment.ts # 如果后续构建步骤需要用到修改后的文件,保留这行

注意事项

  • 如果是在本地macOS测试,sed的-i参数需要加空后缀:sed -i "" "s/...",但Bitbucket Pipelines用的是Linux环境,直接用sed -i就行。
  • 正则里的[A-Za-z0-9-]*能匹配任意长度的logglyKey(包括空值),确保替换能覆盖各种情况。

这样配置后,每次Bitbucket Pipelines构建时,都会自动把environment.ts里的logglyKey替换成你设置的环境变量值。

内容的提问来源于stack exchange,提问作者Piyush Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:38:17