
GitHub Actions là nền tảng tự động hóa CI/CD được tích hợp sẵn trong GitHub, cho phép lập trình viên xây dựng, kiểm thử và triển khai mã nguồn ngay trong kho lưu trữ mà không cần bất kỳ máy chủ hay dịch vụ CI bên ngoài nào. Ra mắt ở dạng thử nghiệm từ tháng 10/2018 và chính thức phát hành toàn cầu tháng 11/2019, GitHub Actions nhanh chóng trở thành một trong những công cụ DevOps phổ biến nhất thế giới nhờ tính miễn phí cho kho lưu trữ công khai và khả năng tích hợp sâu với hệ sinh thái GitHub.
Với lập trình viên Việt Nam, GitHub Actions là bước khởi đầu lý tưởng để học CI/CD: chỉ cần một tệp YAML trong thư mục .github/workflows, mọi quy trình tự động sẽ chạy ngay mỗi khi có thay đổi trên kho lưu trữ. Bài viết này sẽ giải thích các khái niệm cốt lõi, cách viết workflow đầu tiên và những mẹo vận hành hiệu quả.

GitHub Actions là gì và hoạt động ra sao?
GitHub Actions là dịch vụ CI/CD do GitHub phát triển, hoạt động theo mô hình workflow. Mỗi workflow là một quy trình tự động được định nghĩa bằng tệp YAML đặt trong thư mục .github/workflows của kho lưu trữ. Khi một sự kiện xảy ra – như push code, mở pull request, tạo release hay theo lịch trình cron – GitHub sẽ tự động chạy các job tương ứng trên máy chủ runner.
Khác với các công cụ CI truyền thống phải tự cấu hình máy chủ, GitHub Actions cung cấp sẵn runner được quản lý hoàn toàn trên đám mây với các hệ điều hành Linux, Windows và macOS. Với kho lưu trữ công khai, mọi phút chạy đều miễn phí và không giới hạn, còn tài khoản miễn phí được tặng 2.000 phút mỗi tháng cho kho riêng tư.
Các khái niệm cốt lõi
Để viết workflow hiệu quả, cần nắm vững bốn khái niệm nền tảng:
- Workflow: quy trình tự động hóa hoàn chỉnh, khai báo trong tệp YAML. Mỗi kho lưu trữ có thể có nhiều workflow phục vụ các mục đích khác nhau.
- Job: tập hợp các bước chạy trên cùng một runner. Nhiều job có thể chạy song song hoặc tuần tự tùy cấu hình.
- Step: bước thực thi nhỏ nhất, có thể là lệnh shell với từ khóa run hoặc gọi action có sẵn với từ khóa uses.
- Runner: máy chủ thực thi job, gồm runner do GitHub quản lý hoặc runner tự vận hành trên phần cứng của bạn.
Các sự kiện kích hoạt phổ biến bao gồm push, pull_request, issues, release, schedule cho tác vụ định kỳ và workflow_dispatch để chạy thủ công. Bạn cũng có thể kết hợp điều kiện if để kiểm soát chính xác khi nào job hoặc step được thực thi.

Viết workflow GitHub Actions đầu tiên
Workflow tối giản nhất chỉ gồm vài dòng YAML. Tạo tệp .github/workflows/demo.yml trong kho lưu trữ với nội dung sau:
name: GitHub Actions Demo
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: echo "Build started"
- run: npm install
- run: npm test
Khi bạn push thay đổi lên nhánh chính, GitHub sẽ tự động nhận sự kiện, khởi động runner ubuntu-latest, sao chép mã nguồn qua action checkout và chạy các lệnh cài đặt, kiểm thử theo thứ tự. Kết quả của từng bước được hiển thị trực quan trong tab Actions của kho lưu trữ, kèm log chi tiết và trạng thái thành công hay thất bại.
Hệ sinh thái Marketplace và action tái sử dụng
Một trong những sức mạnh lớn nhất của GitHub Actions là kho Marketplace với hơn 190.000 kho lưu trữ chứa action có thể tái sử dụng. Thay vì viết lại các tác vụ phổ biến như triển khai lên máy chủ, gửi thông báo Slack, quét lỗ hổng bảo mật hay đăng tải artifact, bạn chỉ cần tham chiếu action có sẵn qua cú pháp uses: owner/repo@version. Các action từ nhà phát hành đã xác minh được đánh dấu huy hiệu đặc biệt để tăng độ tin cậy.
Việc tái sử dụng action giúp workflow ngắn gọn hơn nhiều. Ví dụ, bước triển khai lên VPS chỉ cần hai dòng: một dòng uses action SSH vào máy chủ, một dòng run lệnh deploy. Đội ngũ phát triển có thể tự đóng gói quy trình riêng thành action nội bộ để chia sẻ giữa các dự án.
Cache, secrets và runner riêng
Ba tính năng giúp GitHub Actions vận hành nhanh và an toàn hơn:
- Cache phụ thuộc: action actions/cache@v4 lưu trữ thư mục node_modules hoặc vendor giữa các lần chạy, giúp giảm thời gian cài đặt từ vài phút xuống còn vài giây. Mỗi kho lưu trữ được miễn phí 10 GB cache, mục nhập không dùng trong 7 ngày sẽ tự động hết hạn.
- Encrypted secrets: biến mật được mã hóa ở cấp kho lưu trữ, môi trường hoặc tổ chức, truy cập qua cú pháp ${{ secrets.NAME }} trong workflow. Mật khẩu, khóa API và token triển khai không bao giờ xuất hiện trực tiếp trong mã nguồn.
- Self-hosted runner: chạy runner trên máy chủ riêng khi cần phần cứng đặc biệt, GPU, hoặc muốn truy cập mạng nội bộ. Chi phí chạy GitHub Actions bằng 0, bạn chỉ trả tiền cho hạ tầng của mình.
Ứng dụng thực tế của GitHub Actions
Ngoài việc chạy kiểm thử mỗi khi push, GitHub Actions được dùng rộng rãi cho nhiều mục đích: tự động triển khai lên máy chủ khi merge vào nhánh chính, kiểm tra chất lượng mã với công cụ lint, quét phụ thuộc tìm lỗ hổng bảo mật, xây dựng và phát hành bản cài đặt cho nhiều nền tảng, tạo tài liệu tự động hay chạy bot xử lý issue. Một quy trình phổ biến là workflow kiểm thử trên nhiều phiên bản Node.js hoặc Python cùng lúc bằng ma trận (matrix), giúp phát hiện lỗi tương thích sớm trước khi phát hành.
Kết luận
GitHub Actions mang lại sức mạnh CI/CD ngay trong kho lưu trữ quen thuộc, miễn phí cho dự án mã nguồn mở và dễ học với cú pháp YAML trực quan. Bắt đầu từ workflow kiểm thử đơn giản, bạn có thể mở rộng dần sang tự động triển khai, bảo mật và phát hành, biến quy trình phát triển phần mềm trở nên chuyên nghiệp hơn mà không cần đầu tư hạ tầng mới. Đây là kỹ năng thiết yếu cho bất kỳ lập trình viên hiện đại nào muốn làm việc hiệu quả trong môi trường phát triển phần mềm chuyên nghiệp.
Tham khảo thêm
Nguồn chính thức: Tài liệu GitHub Actions, Hướng dẫn thanh toán GitHub Actions, Hướng dẫn GitHub Actions từ freeCodeCamp và Bài giới thiệu GitHub Actions trên GitHub Blog.
