Xây dựng CI/CD Pipeline tự động với GitHub Actions

Học cách thiết lập hệ thống Tích hợp liên tục (CI) và Phân phối liên tục (CD) tự động hoàn toàn bằng GitHub Actions.

Xây dựng CI/CD Pipeline tự động với GitHub Actions

Giới thiệu CI/CD và GitHub Actions

CI/CD (Continuous Integration / Continuous Deployment) là quy trình không thể thiếu trong các dự án phát triển phần mềm Agile. Nó giúp đội ngũ tự động hóa việc kiểm thử mã nguồn và tự động triển khai phần mềm khi mã được đẩy (push) lên nhánh chính.

GitHub Actions là một dịch vụ ưu việt được GitHub cung cấp hoàn toàn miễn phí (đối với mã nguồn mở) cho phép bạn tự động hóa quy trình làm việc ngay trong nền tảng nơi bạn quản lý code (Repositories).

Các thành phần chính trong GitHub Actions

Trước khi bắt tay vào thực hành, bạn cần nắm vững các thuật ngữ sau:

  1. Workflow (Luồng công việc): Một quy trình tự động do bạn thiết lập và định nghĩa qua tệp .yaml.
  2. Events (Sự kiện): Điều kiện kích hoạt Workflow (ví dụ: push, pull_request, hay hẹn giờ schedule).
  3. Jobs (Nhiệm vụ): Một danh sách các tác vụ có thể chạy song song hoặc tuần tự.
  4. Runners (Máy ảo): Nơi tiến trình Job được chạy (Ubuntu, Windows, macOS).
  5. Steps (Bước hành động): Một lệnh chạy đơn lẻ như cài đặt thư viện hay chạy shell scripts.

Bắt đầu với Workflow đầu tiên

Tạo mộc thư mục .github/workflows trong dự án của bạn và tạo một tập tin tên main.yaml với nội dung cơ bản sau:

name: CI/CD Pipeline Cơ Bản

on:
  push:
    branches: [ "main" ]

jobs:
  build_and_test:
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout Code Khách Hàng
      uses: actions/checkout@v3

    - name: Cài đặt Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '20'

    - name: Cài đặt các thư viện (NPM Install)
      run: npm install

    - name: Chạy kiểm thử (Lint và Test)
      run: |
        npm run lint
        npm run test

Và xong! Chỉ với hơn chục dòng code YAML, bạn đã sở hữu một Pipeline cơ bản để kiểm tra mã nguồn tự động không trượt lỗi nào mỗi khi một thành viên trong nhóm push code lên nhánh chính!

Khả năng mở rộng

Điểm mạnh của GitHub Actions là chợ tiện ích mở rộng (GitHub Marketplace), nơi bạn có thể tìm thấy hàng ngàn Actions sẵn có để triển khai code thẳng lên Kubernetes, gửi tin nhắn báo lỗi qua Slack, hay quét bảo mật mã nguồn với SonarQube.

Chúc bạn triển khai CI/CD thành công!

Bình luận

Bài viết liên quan