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

如何在.releaserc.json中使用环境变量适配semantic-release配置

semantic-release 传入CI环境变量实现方案

你的现有配置写法本身就支持读取CI传入的环境变量,只需要按以下规则操作即可:

  • 你在CI任务中设置的所有环境变量,只要在运行semantic-release命令的进程上下文里可被读取,就能直接在@semantic-release/exec的命令参数里用${环境变量名}的格式调用,不需要额外插件配置。
    示例配置如下:
    ["@semantic-release/exec", {
      "prepareCmd": "echo hello ${HOME} 自定义CI变量值: ${MY_CUSTOM_VAR};"
    }],
    
  • CI侧只需要在执行semantic-release命令前导出对应的环境变量即可,示例CI执行脚本:
    # 导出自定义环境变量,也可以在CI配置的全局env字段中统一设置
    export MY_CUSTOM_VAR="ci传入的自定义值"
    # 启动semantic-release
    npx semantic-release
    
  • 如果你需要同时使用semantic-release内置变量(比如版本号${nextRelease.version}、分支名${branch.name}等),直接和自定义环境变量拼接即可,插件会先替换内置模板变量,再交给shell解析环境变量,二者完全兼容:
    ["@semantic-release/exec", {
      "prepareCmd": "echo 本次发布版本号: ${nextRelease.version} CI自定义变量: ${MY_CUSTOM_VAR};"
    }],
    

注意事项

  • 敏感类环境变量(比如访问密钥)不要在命令中打印输出,绝大多数CI平台会自动对日志里的敏感变量做脱敏处理,直接在命令中调用即可。
  • 如果你的变量值包含空格、特殊符号,在shell命令中使用时要给变量包裹双引号,避免解析错误,比如echo "${MY_CUSTOM_VAR}"。
  • 若使用Windows环境的CI节点,需要把变量写法调整为Windows默认的%变量名%格式,或者用cross-env类工具统一跨平台变量读取逻辑。

内容的提问来源于stack exchange,提问作者Evan Carroll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:48:00