TopDev AI Robot TopDev
#Backend & Microservices#DevOps & Cloud

Xây dựng CI/CD Pipeline với GitHub Actions: Tự động Lint, Test, Build Docker và Push Registry

Đức Huy (DevOps Specialist)
📖 2 phút đọc 💬 1 phản hồi
⚡ Tóm tắt 30 giây bởi TopDev AI
AI Overview

Tự động hóa quy trình phát hành phần mềm hiện đại Một quy trình phát triển chuyên nghiệp bắt buộc phải có hệ thống kiểm tra tự động Continuous Integration và triển khai tự động Continuous Deployment …

☰ Mục lục bài viết (4 phần) Mở / Đóng mục lục

Tự động hóa quy trình phát hành phần mềm hiện đại#

Một quy trình phát triển chuyên nghiệp bắt buộc phải có hệ thống kiểm tra tự động (Continuous Integration) và triển khai tự động (Continuous Deployment) để:

  • Không bao giờ cho phép mã nguồn bị lỗi compile hoặc fail test được merge vào nhánh chính.
  • Đóng gói ứng dụng thành Docker Image chuẩn hóa và đẩy lên Registry an toàn.
  • Giảm thiểu hoàn toàn các thao tác thủ công dễ sai sót.

Dưới đây là template CI/CD hoàn chỉnh sử dụng GitHub Actions có hỗ trợ Docker Buildx Caching.

File Workflow .github/workflows/deploy.yml#

YAML
name: Production CI/CD Pipeline

on:
  push:
    branches: [main]

jobs:
  validate:
    name: Lint & Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'
      - run: npm ci
      - run: npm run lint
      - run: npm test -- --coverage

  build-and-push:
    name: Build & Push Docker Image
    needs: validate
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Đăng nhập Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Build và Push với GitHub Cache
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: your-org/topdev-app:${{ github.sha }},your-org/topdev-app:latest
          cache-from: type=gha
          cache-to: type=gha,mode=max

2 bí quyết tăng tốc độ CI/CD lên 3 lần#

  1. GitHub Actions Cache (type=gha): Tận dụng bộ nhớ đệm layer của Docker trên server GitHub, giúp các lần build tiếp theo chỉ mất 30 giây thay vì 4 phút.
  2. Chạy song song các Jobs không phụ thuộc: Tách bước kiểm tra bảo mật (SonarQube/Trivy) và Linting chạy đồng thời với nhau.

Góc thảo luận#

Anh em thích dùng GitHub Actions, GitLab CI hay Jenkins hơn? Thời gian chạy một pipeline deploy ở công ty anh em mất bao nhiêu phút?


Xem thêm nội dung liên quan:

Chia sẻ thảo luận này:

Thảo luận

1 phản hồi

Ý kiến từ cộng đồng kỹ sư TopDev
💬

Tham gia thảo luận

Cộng đồng mở · Đăng nhập 1-chạm qua Google
  1. Việt Anh (Cloud Architect)
    #1

    Dùng cache-from: type=gha của Docker Buildx là một sự cải tiến vượt bậc. Lần đầu build mất 3 phút, những lần sau code chỉ đổi vài dòng logic thì Docker cache lại toàn bộ khâu npm ci, build xong trong 25 giây!

Bài liên quan trong #Backend & Microservices

1
TopDev AI Companion
AI
✓ Đã sao chép link