GitHub Actions: Tự Động Hóa Quy Trình Phát Triển Laravel Một Cách Bá Đạo!
Lê Lân
1
GitHub Actions Là Gì? Hướng Dẫn Toàn Diện Về Workflow Cho Ứng Dụng Laravel Với MySQL
Mở Đầu
GitHub Actions là một công cụ tự động hóa miễn phí tích hợp sẵn trong GitHub, giúp bạn tự động chạy script và lệnh khi có sự kiện nhất định trong repository như push code hay mở pull request.
Trong bài viết này, chúng ta sẽ tìm hiểu cách tận dụng GitHub Actions để xây dựng một workflow tự động cho ứng dụng Laravel, bao gồm:
Thiết lập cơ sở dữ liệu MySQL phục vụ kiểm thử
Cài đặt PHP cùng các extension cần thiết cho Laravel
Quản lý cache Composer để tối ưu thời gian build
Thực hiện static analysis, kiểm tra chất lượng mã nguồn
Chạy toàn bộ bộ test tự động
Ưu điểm lớn nhất khi dùng GitHub Actions là bạn có một quy trình CI/CD tự động, tin cậy, và dễ dàng cấu hình, giúp nâng cao chất lượng và tốc độ phát triển dự án.
Tổng Quan Workflow Với GitHub Actions
Triggers (Sự kiện kích hoạt)
Workflow được thiết lập để:
Chạy mỗi khi bạn push code hoặc tạo pull request vào nhánh main hoặc dev.
on:
push:
branches: ["main", "dev"]
pull_request:
branches: ["main", "dev"]
Việc chọn nhánh main và dev giúp bạn kiểm soát quy trình kiểm thử trên các môi trường phát triển và sản xuất, giữ ổn định chất lượng code.
Định nghĩa Job và Môi trường chạy
Job chính tên là tests, chạy trên môi trường Ubuntu bản mới nhất:
jobs:
tests:
runs-on:ubuntu-latest
Các Bước Chi Tiết Trong Workflow
1. Thiết lập MySQL Database
services:
mysql:
image:mysql:8.0
ports:
-3306:3306
env:
MYSQL_ROOT_PASSWORD:root
MYSQL_DATABASE:test_db
options:--health-cmd="mysqladminping"
Dùng Docker spin up MySQL 8.0 với database test_db
Sử dụng root password là root
Health check đảm bảo MySQL đã sẵn sàng trước khi chạy test
Chạy cơ sở dữ liệu thực tế (mysql service) trong CI giúp bạn kiểm thử API hoặc truy vấn chính xác như môi trường production.
2. Checkout Mã Nguồn
-uses:actions/checkout@v4
Bước này lấy toàn bộ mã nguồn từ repository để workflow có thể thao tác.
Công cụ kiểm tra lỗi tiềm ẩn trên code mà không cần chạy lại.
10. Kiểm Tra Chất Lượng Code Với PHP Insights
-name:phpinsights
run:|
php artisan insights --no-interaction \
--min-quality=90 --min-complexity=90 \
--min-architecture=90 --min-style=90 \
--ansi --format=github-action
Đánh giá các khía cạnh như chất lượng, độ phức tạp, kiến trúc, phong cách.
Workflow này ép buộc mã nguồn đạt chuẩn chất lượng với điểm số tối thiểu 90% ở mọi chỉ số.
11. Kiểm Tra Cấu Hình Database
-name:ShowDBconfig
run:|
grepDB_.env
Hiển thị cấu hình database hiện tại dùng trong test, giúp bạn kiểm tra chắc chắn đang sử dụng đúng database.
12. Chạy Bộ Test Laravel
-name:Runtests
run:|
phpartisantest
Cuối cùng workflow chạy toàn bộ test tự động, đảm bảo code không lỗi trước khi merge.
Kết Luận
Qua quy trình workflow được thiết lập hoàn chỉnh trên GitHub Actions, bạn đã có được một môi trường kiểm thử đầy đủ, tự động và chính xác cho ứng dụng Laravel của mình. Sử dụng MySQL thật, PHP chuẩn và bộ công cụ phân tích, kiểm tra code giúp dự án của bạn đạt chất lượng cao, phát hiện lỗi sớm và đẩy nhanh tiến độ phát triển.
Bạn chỉ cần tập trung vào viết code còn mọi việc build, test, phân tích sẽ được tự động xử lý mỗi khi cập nhật. Đây là một bước quan trọng trong việc áp dụng CI/CD hiện đại, nâng tầm kỹ thuật phát triển phần mềm.
Lưu ý: Đừng quên commit file .env.ci với cấu hình phù hợp để workflow hoạt động ổn định nhé!