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.
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:
- 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. - Events (Sự kiện): Điều kiện kích hoạt Workflow (ví dụ:
push,pull_request, hay hẹn giờschedule). - 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ự.
- Runners (Máy ảo): Nơi tiến trình Job được chạy (Ubuntu, Windows, macOS).
- 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
Lộ trình tự học DevOps chuẩn nhất năm 2026
Khám phá lộ trình học DevOps từng bước chi tiết từ Linux cơ bản, Mạng lưới (Networking), tới Docker, Kubernetes và CI/CD.
Terraform là gì? Tại sao mọi Kỹ sư DevOps đều phải biết Terraform
Terraform là công cụ đắc lực nhất để triển khai Infrastructure as Code (IaC). Cùng tìm hiểu tại sao nó lại thống trị mảng Cloud Provisioning.
Ansible là gì? Hướng dẫn tự động hóa hạ tầng cho người mới
Tìm hiểu chi tiết Ansible là gì, nguyên lý hoạt động bằng kiến trúc Agentless, và tại sao nó là công cụ Configuration Management hàng đầu.