ubuntu

Ubuntu Nodejs如何集成CI/CD

小樊
35
2025-09-16 10:17:27
栏目: 编程语言

在Ubuntu上集成Node.js的CI/CD可采用GitHub Actions、Jenkins等工具,以下是基于GitHub Actions的典型方案:

  1. 环境准备

    • 安装Node.js和npm:通过curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -安装指定版本。
    • 配置GitHub仓库,确保代码可访问。
  2. 创建CI/CD工作流

    • 在项目根目录创建.github/workflows/ci.yml文件,定义构建、测试、部署流程。
    • 示例配置
      name: Node.js CI/CD  
      on:  
        push:  
          branches: [main]  
      jobs:  
        build-and-test:  
          runs-on: ubuntu-latest  
          steps:  
          - uses: actions/checkout@v3  
          - uses: actions/setup-node@v3  
            with:  
              node-version: '16'  
          - run: npm install  
          - run: npm test  
        deploy:  
          runs-on: ubuntu-latest  
          steps:  
          - uses: actions/checkout@v3  
          - uses: actions/setup-node@v3  
            with:  
              node-version: '16'  
          - run: npm install  
          - run: npm run build  
          - name: Deploy to Server  
            env:  
              SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}  
            run: |  
              echo "$SSH_PRIVATE_KEY" > private_key.pem  
              chmod 600 private_key.pem  
              scp -o StrictHostKeyChecking=no -r dist/* user@server:/var/www/html  
      
      • 说明
        • actions/setup-node:设置Node.js环境。
        • npm test:运行测试(需提前配置测试脚本)。
        • scp:通过SSH部署到服务器,需在GitHub Secrets中配置私钥。
  3. 部署到Docker(可选)

    • 若需容器化部署,可添加Docker构建步骤:
      - name: Build Docker Image  
        run: docker build -t your-dockerhub-username/your-repo:tag .  
      - name: Push to Docker Hub  
        uses: docker/build-push-action@v2  
        with:  
          push: true  
          tags: your-dockerhub-username/your-repo:tag  
      
      需提前创建Dockerfile并登录Docker Hub。
  4. 工具对比

    工具 适用场景 优势
    GitHub Actions 云原生、轻量级项目 与GitHub深度集成,无需额外服务器
    Jenkins 企业级复杂流水线 支持多环境、插件生态丰富
    GitLab CI 自托管Git仓库 内置Runner,适合大规模团队

注意事项

0
看了该问题的人还看了