Ubuntu环境下Node.js持续集成(CI)实现指南持续集成(CI)是Node.js项目开发中的关键环节,通过自动化代码集成、构建、测试流程,可快速发现代码缺陷、保证代码质量。Ubuntu作为Linux发行版的代表,其环境配置灵活,适合搭配各类CI工具(如GitHub Actions、Jenkins)实现高效的CI流程。以下是具体实现步骤:

在开始配置前,需完成以下基础准备工作:
Ubuntu系统环境配置:确保Ubuntu系统已安装Node.js、npm及常用工具(如Git)。可通过以下命令快速安装:
# 安装Node.js(以16.x版本为例)curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -sudo apt install -y nodejs# 验证安装node -v# 输出版本号(如v16.20.2)npm -v # 输出版本号(如9.6.7)# 安装Git(用于代码托管库交互)sudo apt install -y git代码托管库准备:将Node.js项目推送到GitHub、Gitee等代码托管平台,确保项目包含package.json文件(定义项目依赖、脚本等)。
服务器环境准备(若需部署到远程服务器):若需将构建产物部署到Ubuntu服务器,需提前配置服务器SSH访问权限(生成SSH密钥对并将公钥添加至服务器~/.ssh/authorized_keys文件)。
GitHub Actions是GitHub提供的原生CI/CD工具,无需额外搭建服务器,适合中小型项目。以下是配置流程:
.github/workflows文件夹,添加ci.yml(或deploy.yml)文件,定义CI流程。push或pull request触发时,自动检出代码、设置Node.js环境、安装依赖、运行测试:name: Node.js CI Pipelineon:push:branches: ["main", "dev"]# 触发分支pull_request:branches: ["main", "dev"]# PR触发分支jobs:build-and-test:runs-on: ubuntu-latest# 运行环境(Ubuntu最新版)strategy:matrix:node-version: ["16.x", "18.x"]# 多版本Node.js兼容测试steps:# 1. 检出代码- name: Checkout codeuses: actions/checkout@v3# 2. 设置Node.js版本- name: Set up Node.jsuses: actions/setup-node@v3with:node-version: ${{ matrix.node-version }}# 3. 安装依赖(使用npm ci确保依赖一致性)- name: Install dependenciesrun: npm ci# 4. 运行测试(需项目包含测试脚本)- name: Run testsrun: npm testdist目录)部署到Ubuntu服务器,可扩展工作流,添加SSH部署步骤(需在GitHub Secrets中配置服务器SSH私钥、IP地址等信息):jobs:deploy:runs-on: ubuntu-lateststeps:# 前置步骤(与build-and-test一致,略)# ...# 5. SSH部署到服务器- name: SSH Deployuses: appleboy/[email protected]# 第三方SSH Actionwith:host: ${{ secrets.SERVER_IP }}# GitHub Secrets中的服务器IPusername: root# 服务器用户名key: ${{ secrets.SSH_PRIVATE_KEY }}# GitHub Secrets中的SSH私钥script: |cd ${{ secrets.DEPLOY_PATH }}# 服务器部署路径(如/var/www/express-app)git pull origin main# 拉取最新代码npm install --production# 安装生产依赖pm2 reload ecosystem.config.js --env production# 重启PM2进程pm2 save# 保存进程列表配置完成后,每次推送代码到指定分支,GitHub Actions会自动执行CI流程。Jenkins是开源CI/CD工具,支持复杂流水线配置,适合大型项目或团队协作。以下是配置流程:
# 安装JDK(Jenkins依赖Java)sudo apt install -y openjdk-11-jdk# 添加Jenkins仓库并安装wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/nullsudo apt updatesudo apt install -y jenkins# 启动Jenkinssudo systemctl start jenkinssudo systemctl enable jenkins# 访问Jenkins管理界面(http://服务器IP:8080),完成初始化设置Git(代码托管库交互)、NodeJS(Node.js环境管理)、Pipeline(流水线配置)等插件。cd /var/lib/jenkins/workspace/[任务名称]/项目目录npm installnpm testnpm run buildnpm ci代替npm install,确保依赖版本与package-lock.json一致,避免因依赖版本差异导致的构建问题。matrix策略、Jenkins的Node.js插件)配置多版本Node.js环境,确保项目在不同版本下均能正常运行。secrets功能用于存储敏感信息(如SSH私钥、服务器IP),避免硬编码在配置文件中。通过以上步骤,可在Ubuntu环境下为Node.js项目搭建高效的持续集成流程,提升开发效率与代码质量。