溫馨提示×

Ubuntu Nodejs如何集成CI/CD

小樊
33
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,適合大規模團隊

注意事項

  • 敏感信息(如SSH密鑰、API密鑰)需通過GitHub Secrets管理。
  • 部署前需確保服務器環境(如Nginx、Node.js版本)與CI環境一致。
  • 可通過matrix策略測試多版本Node.js。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女