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

CircleCI执行semantic-release时出现getaddrinfo ENOTFOUND hostname错误求助

问题排查与解决方案

核心问题分析

错误getaddrinfo ENOTFOUND hostname表明semantic-release的GitHub插件无法解析GitHub API的域名,大概率是环境变量配置错误或CircleCI执行环境的网络/节点配置冲突导致的。

具体修复步骤

1. 移除冗余的nvm安装步骤

你已经使用了node: circleci/node@4.5 orb,该orb已内置node环境管理能力,手动安装nvm会导致环境冲突,干扰后续命令执行。修改config.yml的release job:

jobs:
  release:
    executor: node/default
    steps:
      - checkout
      # 直接用orb指定node版本,无需手动安装nvm
      - node/install:
          node-version: '16.17.1'
      - node/install-packages # 自动安装并缓存依赖
      # 移除手动安装nvm和切换版本的冗余步骤
      - run: npx semantic-release

2. 验证GH_TOKEN环境变量配置

  • 确认CircleCI项目的环境变量设置中已正确配置GH_TOKEN,该token需具备repo权限(用于操作仓库、创建Release)。
  • 确保变量名拼写为GH_TOKEN,semantic-release会自动读取该环境变量,无需额外配置。

3. 修正GitHub插件的配置格式

你的release.config.js中GitHub插件的配置格式错误,单独的{successComment: false}未关联到对应插件,需合并到@semantic-release/github的配置项中:

module.exports = {
  branches: ['main', 'next'],
  plugins: [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    ["@semantic-release/github", {
        "successComment": false
    }],
    ["@semantic-release/git",
    {
      "assets": [
        {"path": ["lib/", "package.json"]},
      ],
      message: 'release: ${nextRelease.version} [skip Ci]\n\n${nextRelease.notes}',
    }],
  ]
}

4. 测试CircleCI环境的网络连通性

若上述步骤无效,可在release job中添加网络测试,验证是否能正常访问GitHub API:

- run:
    name: Test GitHub API connectivity
    command: |
      curl -v https://api.github.com/repos/你的用户名/你的仓库名

验证修复

提交修改后的配置文件到main分支,触发CircleCI的release流程,检查是否能顺利完成GitHub插件的验证步骤,成功执行自动化发布。

内容的提问来源于stack exchange,提问作者Dhaval Parmar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:15:45