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

Github Actions Node.js CI工作流执行报错求助

解决Github Actions Node.js CI工作流报错问题

问题现象

  • Node.js 18.x构建进程以退出代码32完成
  • Node.js 16.x构建操作被取消
  • 两个版本构建均提示:actions/checkout@v2、actions/setup-node@v1使用已弃用的Node.js 12,将强制在Node.js 16上运行
  • 报错触发于run npm test步骤

问题原因

  1. 旧Action兼容性问题:actions/checkout@v2和actions/setup-node@v1依赖已淘汰的Node.js 12,当前Github Actions强制用Node.js 16运行这些旧Action,容易引发兼容性异常。
  2. 服务与测试时序冲突:npm start &是后台启动服务,但未等待服务完全就绪就执行npm test,导致测试无法连接到服务,进而引发报错(退出码32通常关联进程启动失败或资源异常,操作取消多因测试超时)。

修复方案

  1. 升级Action版本
    将actions/checkout@v2升级至actions/checkout@v4,actions/setup-node@v1升级至actions/setup-node@v4,这两个新版本基于Node.js 20,完全适配Github Actions的运行环境,可消除弃用警告。

  2. 修复服务启动时序
    不要用后台启动的方式,确保服务完全就绪后再执行测试。推荐使用wait-on工具:

    • 本地执行npm install wait-on --save-dev,提交package.json变更至仓库
    • 修改CI步骤,启动服务后等待服务端口就绪,再执行测试

修改后的完整CI配置文件

name: Node.js CI

on:
  workflow_dispatch:
  push:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.x, 18.x]

    steps:
    - uses: actions/checkout@v4
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm' # 可选:添加npm缓存加速构建
    - run: npm ci
    - run: npm start & npx wait-on http://localhost:3000 # 替换为你的服务实际运行端口
    - run: npm test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:05:31