Tự động hóa quy trình phát triển với GitHub Actions

2 min read

🚀 Giới thiệu về Github Actions

Nếu bạn từng build, test, deploy thủ công sau mỗi lần commit, hẳn bạn biết cảm giác “chờ đợi và quên chạy lại script”.
Với GitHub Actions, mọi việc đó được tự động hóa hoàn toàn:

“Push code → chạy test → build → deploy” chỉ trong vài giây, không cần động tay.

cicd_pipeline

🧩 GitHub Actions là gì?

GitHub Actions là hệ thống workflow automation tích hợp sẵn trong GitHub, cho phép bạn:

  • Tự động chạy script mỗi khi có sự kiện (event) như push, pull_request, hoặc release.
  • Tích hợp build/test/deploy dễ dàng.
  • Kết hợp hàng ngàn Action sẵn có từ cộng đồng.

🔧 Bạn có thể tưởng tượng GitHub Actions như một “Jenkins” nhưng tích hợp sẵn trong GitHub, không cần setup server riêng.

⚙️ Cấu trúc một workflow cơ bản

Workflow được định nghĩa bằng file .yml trong thư mục .github/workflows/.

Ví dụ: ci.yml

name: CI

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout source
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "18"

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

🧠 Giải thích:

  • on: định nghĩa trigger event (khi nào workflow chạy).
  • jobs: danh sách các công việc.
  • runs-on: chọn môi trường máy ảo (Linux, Windows, macOS).
  • steps: các bước sẽ chạy tuần tự.

🧱 Thêm bước build & deploy

Giả sử bạn có app React, có thể mở rộng workflow:

      - name: Build project
        run: npm run build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./build

🎯 Khi bạn push lên branch main, GitHub Actions sẽ:

  1. Cài Node.js
  2. Cài dependency
  3. Build dự án
  4. Deploy tự động lên GitHub Pages
github actions status

🔐 Secrets & Environment Variables

Để bảo mật token hoặc key deploy, dùng phần Settings → Secrets → Actions:

env:
  API_KEY: ${{ secrets.API_KEY }}

Không bao giờ commit key trực tiếp vào repo – dùng secrets là cách an toàn nhất.

⚡ Mẹo tối ưu workflow

MẹoGiải thích
Sử dụng cacheDùng actions/cache để lưu dependency giữa các lần build
Chạy song songDùng jobs.<id>.strategy.matrix để test trên nhiều môi trường
Chỉ chạy khi cầnDùng if: để giới hạn điều kiện
Tách file workflowMỗi pipeline (build, test, deploy) riêng giúp dễ quản lý
Sử dụng reusable workflowDùng workflow_call để chia sẻ cấu hình giữa nhiều repo

🧠 Khi nào nên dùng GitHub Actions?

Mục tiêuNên dùng Actions?
CI/CD cho app web, mobile✅ Rất phù hợp
Automation kiểm tra code✅ Dễ dùng
Build Docker image✅ Có nhiều action hỗ trợ
Deploy production phức tạp (k8s, AWS ECS…)⚠️ Có thể, nhưng cần kiến thức DevOps
Workflow nặng, cần self-hosted runner✅ Có thể tùy chỉnh

🧩 Kết luận

GitHub Actions mang lại sức mạnh DevOps ngay trong tay developer –
bạn không cần Jenkins, không cần server riêng, chỉ cần 1 file YAML là có thể tự động hóa toàn bộ quy trình phát triển.

Hãy thử bắt đầu bằng việc thêm file .github/workflows/ci.yml vào repo của bạn, và xem mỗi lần push code trở nên nhẹ nhàng thế nào.

💬 Bạn đã từng dùng GitHub Actions để deploy project thực tế chưa? Hãy chia sẻ kinh nghiệm của bạn trong phần bình luận nhé!

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *