Xây dựng CI/CD Pipeline với GitHub Actions: Từ Cài Đặt Đến Triển Khai

0
Dịch vụ dạy kèm gia sư lập trình

Trong bối cảnh phát triển phần mềm ngày càng yêu cầu tính liên tục, tự động hóa các quy trình là một yếu tố không thể thiếu. CI/CD (Continuous Integration/Continuous Deployment) chính là câu trả lời cho nhu cầu đó, giúp các nhà phát triển có thể nhanh chóng kiểm thử và triển khai ứng dụng một cách tự động, giảm thiểu rủi ro và tiết kiệm thời gian. Và trong số các công cụ hỗ trợ việc xây dựng CI/CD, GitHub Actions nổi lên như một giải pháp mạnh mẽ và dễ sử dụng, đặc biệt là cho những ai đã quen thuộc với GitHub.

Nếu bạn là người mới bắt đầu, có lẽ bạn đang tự hỏi CI/CD là gì và tại sao nó lại quan trọng? Hãy cùng khám phá trong bài viết này. Chúng ta sẽ đi từ việc cài đặt, thiết lập CI/CD pipeline với GitHub Actions, cho đến cách bạn có thể triển khai dự án một cách tự động, không cần phải làm thủ công như trước đây.

Tại sao CI/CD và GitHub Actions lại quan trọng?

CI/CD giúp đảm bảo rằng mỗi khi có thay đổi trong mã nguồn (commit mới), toàn bộ hệ thống sẽ được kiểm thử và triển khai một cách tự động mà không cần sự can thiệp của con người. Điều này giúp phát hiện lỗi sớm hơn, giảm thiểu thời gian phát hành phiên bản mới, đồng thời đảm bảo rằng ứng dụng của bạn luôn được cập nhật với những cải tiến và sửa lỗi mới nhất.

Với GitHub Actions, bạn có thể xây dựng các workflow tự động hóa ngay trong kho GitHub của mình. Điều này giúp bạn có thể dễ dàng tích hợp và triển khai dự án ngay trên nền tảng quen thuộc mà không cần tìm kiếm công cụ bên thứ ba. Không chỉ vậy, GitHub Actions còn miễn phí cho các dự án mã nguồn mở và cực kỳ linh hoạt.

Bắt đầu với GitHub Actions

1. Thiết lập CI/CD pipeline cơ bản

Trước khi đi sâu vào các bước cài đặt, chúng ta cần hiểu rõ workflow trong GitHub Actions là gì. Workflow là một tập hợp các hành động (actions) được thực thi khi có sự kiện kích hoạt (event), chẳng hạn như push mã lên repository hoặc tạo pull request.

Bắt đầu với việc tạo file workflow trong dự án:

  1. Tạo thư mục .github/workflows trong repository của bạn.
  2. Tạo một file mới bên trong thư mục này, ví dụ: ci.yml.

Nội dung của file ci.yml có thể bắt đầu đơn giản như sau:

name: CI Pipeline

on: 
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

Giải thích từng phần:

  • on: Đây là các sự kiện sẽ kích hoạt workflow. Ở đây, workflow sẽ chạy khi có push hoặc pull_request vào nhánh main.
  • jobs: Chứa các bước cần thực hiện. Ở đây chúng ta có một job build, nó chạy trên môi trường Ubuntu (runs-on: ubuntu-latest).
  • steps: Các bước trong job, như lấy mã nguồn (actions/checkout@v2), cài đặt Node.js (actions/setup-node@v2), cài đặt các phụ thuộc và chạy thử nghiệm (npm installnpm test).

2. Chạy thử CI/CD pipeline

Sau khi đã thiết lập xong file workflow, bạn chỉ cần commit và đẩy mã lên GitHub. GitHub Actions sẽ tự động kích hoạt và hiển thị trạng thái quá trình build ngay trên giao diện pull request hoặc trên repository của bạn.

Build_CI_CD_Pipeline

3. Triển khai ứng dụng tự động

Tiếp theo, chúng ta sẽ triển khai ứng dụng sau khi pipeline build và test thành công. Bạn có thể thêm bước triển khai này vào cuối file workflow. Ví dụ, nếu bạn triển khai lên một máy chủ Heroku, bạn có thể làm như sau:

- name: Deploy to Heroku
  env:
    HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
  run: |
    git remote add heroku https://git.heroku.com/<app-name>.git
    git push heroku main

Giải thích:

  • HEROKU_API_KEY: Đây là biến môi trường chứa API key của Heroku. Bạn có thể thiết lập biến này trong phần Secrets của GitHub repository.
  • git push heroku main: Lệnh này đẩy mã từ nhánh main của repository lên Heroku để triển khai ứng dụng.

Lợi ích của CI/CD pipeline tự động

  • Nhanh chóng phát hiện lỗi: Khi mỗi lần đẩy mã, bạn có thể đảm bảo rằng các bài kiểm tra tự động được chạy, giúp phát hiện lỗi sớm hơn.
  • Tiết kiệm thời gian: Không còn phải triển khai thủ công, CI/CD pipeline sẽ tự động hóa quy trình triển khai, giúp bạn tiết kiệm thời gian để tập trung vào phát triển tính năng mới.
  • Dễ dàng mở rộng: Khi dự án phát triển, bạn có thể dễ dàng thêm các bài kiểm tra mới, các quy trình build phức tạp hơn mà không cần thay đổi cách thức triển khai.

Kết luận

Qua bài viết này, chúng ta đã cùng tìm hiểu về cách xây dựng CI/CD pipeline với GitHub Actions từ việc cài đặt cho đến triển khai. CI/CD không chỉ giúp tối ưu hóa quy trình phát triển phần mềm, mà còn mang lại sự tự tin cho các nhà phát triển trong việc phát hành các phiên bản mới. Với GitHub Actions, mọi thứ trở nên dễ dàng và thuận tiện hơn bao giờ hết.

Liên kết tham khảo:

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcGiảm độ trễ trong hệ thống Chat real-time bằng Redis Pub/Sub: Bí quyết tối ưu hóa
Bài tiếp theoKinh nghiệm xử lý thời gian và múi giờ trong JavaScript và Các lỗi thường gặp
Sơn Dương
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Thông báo