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
So Sánh Caddy, Nginx và Apache: Đâu Là Lựa Chọn Tốt Nhất Cho Web Server?
Phân tích và so sánh chi tiết ưu, nhược điểm của Caddy, Nginx và Apache. Giúp bạn dễ dàng lựa chọn web server phù hợp nhất cho dự án của mình.
Hướng dẫn cài đặt và sử dụng Rancher toàn tập cho người mới
Rancher là gì? Hướng dẫn chi tiết cách cài đặt và sử dụng Rancher bằng Docker Compose để quản lý các cluster Kubernetes một cách hiệu quả và trực quan nhất.
DevOps là gì? Hướng dẫn toàn tập cho người mới bắt đầu
Khám phá khái niệm DevOps là gì, vòng đời DevOps, lợi ích và lộ trình học DevOps chuẩn nhất cho người mới bắt đầu.