CI/CD thật đơn giản với GitHub Action


CI/CD thật đơn giản với GitHub Action

Trong thế giới phát triển phần mềm, CI/CD (Continuous Integration and Continuous Deployment) là hai quy trình quan trọng giúp tăng tốc độ phát triển, cải thiện chất lượng mã nguồn và giảm thiểu rủi ro lỗi. Nếu bạn muốn tích hợp CI/CD vào dự án của mình một cách dễ dàng, GitHub Actions là một công cụ tuyệt vời. Hãy cùng khám phá cách triển khai CI/CD đơn giản với GitHub Actions trong bài viết này!

GitHub Actions là gì?

GitHub Actions là một dịch vụ tích hợp CI/CD miễn phí được cung cấp bởi GitHub. Với GitHub Actions, bạn có thể tự động hóa các công việc như kiểm tra mã nguồn, xây dựng ứng dụng, triển khai ứng dụng và nhiều công việc khác một cách dễ dàng.

Ưu điểm của GitHub Actions

  • Dễ dàng thiết lập và tích hợp: GitHub Actions có các mẫu workflows và các action được cộng đồng chia sẻ, giúp bạn triển khai CI/CD chỉ trong vài phút.
  • Miễn phí: GitHub Actions cung cấp 2000 phút chạy miễn phí mỗi tháng cho các dự án công cộng.
  • Tối ưu hoá cho GitHub: Không cần kết nối với các công cụ bên ngoài, vì GitHub Actions tích hợp trực tiếp với mã nguồn của bạn trên GitHub.
  • Hỗ trợ đa nền tảng: Chạy được trên nhiều hệ điều hành như Linux, macOS, Windows.

Cách triển khai CI/CD với GitHub Actions

Bước 1: Tạo file workflow

Đầu tiên, bạn cần tạo một file workflow để định nghĩa các công việc cần thực thi. File workflow có định dạng YAML và được lưu trong thư mục .github/workflows của dự án.

Ví dụ, bạn có thể tạo một file run.yml để build dự án sử dụng nodejs với nội dung như sau:

# File: .github/workflows/run.yml
name: CI/CD Pipeline Run # Tên của workflow

on: # Sự kiện trigger workflow
  push:
    branches:
      - master
    pull_request:
      branches:
        - master

jobs: # Các công việc cần thực thi
    build:
        runs-on: ubuntu-latest # Hệ điều hành chạy workflow
    
        steps: # Các bước thực thi
        - name: Checkout code # Bước checkout mã nguồn
            uses: actions/checkout@v2
    
        - name: Setup Node.js # Bước cài đặt Node.js
            uses: actions/setup-node@v2
            with:
            node-version: '20'
    
        - name: Install dependencies # Bước cài đặt dependencies
            run: npm install
    
        - name: Build # Bước build
            run: npm run build
    
        - name: Test # Bước test
            run: npm test
    deploy: # Công việc triển khai ứng dụng
        needs: build # Cần chạy công việc build trước
        runs-on: ubuntu-latest
        steps: # Các bước thực thi
        - name: Deploy
            run: echo "Deploying..."

Như ví dụ trên, workflow sẽ chạy khi có sự kiện push hoặc pull request vào nhánh master. Các bước thực thi bao gồm: checkout mã nguồn, cài đặt Node.js, cài đặt dependencies, build, test và triển khai ứng dụng.

Ở phần run-on, bạn có thể chọn hệ điều hành mà workflow sẽ chạy, ví dụ: ubuntu-latest, macos-latest, windows-latest hoặc self-hosted.

Self-hosted là một máy chủ bạn tự quản lý và cấu hình để chạy các workflow. Điều này giúp bạn có thể chạy các công việc cần tài nguyên phần cứng cao hoặc cần cài đặt các công cụ mà GitHub Actions không hỗ trợ.

Trong steps, mỗi bước thực thi sẽ chạy một action cụ thể. GitHub Actions cung cấp nhiều action sẵn có mà bạn có thể sử dụng tại Marketplace, hoặc bạn có thể tạo các action riêng của mình sử dụng bằng uses: 'Tên action'.

Bước 2: Push file workflow lên GitHub

Sau khi tạo file workflow, bạn cần push file này lên GitHub để GitHub Actions có thể chạy workflow. Bạn có thể kiểm tra trạng thái của workflow trên tab Actions của dự án.

Bước 3: Kích hoạt CI/CD

Khi push mã nguồn hoặc tạo pull request vào nhánh master, GitHub Actions sẽ tự động chạy workflow đã định nghĩa. Bạn có thể xem kết quả của workflow trên tab Actions và theo dõi quá trình thực thi.

Mẹo tối ưu CI/CD với GitHub Actions

  • Sử dụng cache: Để giảm thời gian chạy workflow, bạn có thể sử dụng cache để lưu trữ các dependencies đã cài đặt trước đó.
  • Sử dụng matrix: Để chạy workflow trên nhiều phiên bản Node.js, hệ điều hành hoặc ngôn ngữ khác nhau.
  • Tách workflow: Để chia nhỏ workflow thành các công việc nhỏ hơn, dễ quản lý và debug hơn.
  • Sử dụng secrets: Để lưu trữ thông tin nhạy cảm như API key, token một cách an toàn.
  • Kiểm soát trigger: Sử dụng trigger chính xác để tránh việc workflows kích hoạt không cần thiết, tối ưu hóa hiệu suất và tài nguyên.

Kết luận

GitHub Actions là một công cụ mạnh mẽ giúp bạn triển khai CI/CD một cách dễ dàng và hiệu quả. Với GitHub Actions, bạn có thể tự động hóa các công việc như kiểm tra mã nguồn, xây dựng ứng dụng, triển khai ứng dụng một cách nhanh chóng và linh hoạt. Hy vọng bài viết này giúp bạn hiểu rõ hơn về GitHub Actions và cách sử dụng nó trong dự án của mình. Mokadev chúc bạn thành công!

Author Photo

Tác giả: MokaDEV

Cố gắng chưa chắc đã thành công nhưng không cố gắng chắc chắn sẽ thất bại.