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
Mã hóa thông tin nhạy cảm của bạn trước khi lưu trữ dùng SOPS và AGE
Tìm hiểu cách mã hóa các file thông tin nhạy cảm (secrets) an toàn trước khi đẩy lên Git repository bằng bộ đôi công cụ SOPS và AGE.
Kubernetes là gì? Hệ sinh thái quản lý Container mạnh mẽ nhất
Tại sao Kubernetes lại trở thành tiêu chuẩn công nghiệp (de-facto) cho việc điều phối Container? Cùng tìm hiểu K8s cơ bản.
TeamCity CI/CD: Tại sao Developers chọn TeamCity cho DevOps Pipelines?
Tìm hiểu TeamCity là gì, các tính năng nổi bật và lý do tại sao các lập trình viên lại chọn TeamCity của JetBrains cho các dự án CI/CD thay vì các công cụ khác.