Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Mỗi lần đẩy code, bạn có nhớ chạy kiểm thử trước không? GitHub Actions giúp việc đó diễn ra tự động: ngay khi bạn push hoặc mở Pull Request, một máy chủ sẽ cài thư viện, chạy test và báo kết quả. Bài này hướng dẫn tạo workflow CI đầu tiên cho dự án Node.js.
CI (Continuous Integration) là thói quen tích hợp code thường xuyên và tự động kiểm tra mỗi lần tích hợp. Lợi ích rõ nhất: phát hiện lỗi sớm, không ai phải nhớ chạy test bằng tay, và đồng đội yên tâm khi xem xét Pull Request vì đã có dấu xanh hoặc đỏ. Với repository công khai, GitHub Actions có chế độ sử dụng miễn phí; với repository riêng tư có hạn mức nhất định, bạn nên xem chính sách hiện hành.
.github/workflows/.push, pull_request, hoặc theo lịch.actions/checkout.Giả sử bạn có dự án Node.js với file package.json định nghĩa lệnh test. Ví dụ tối giản dùng bộ chạy test có sẵn của Node:
{
"name": "ci-demo",
"version": "1.0.0",
"scripts": {
"test": "node --test"
}
}Tạo file sum.js và sum.test.js:
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = { sum };
// sum.test.js
const test = require('node:test');
const assert = require('node:assert');
const { sum } = require('./sum');
test('cộng hai số', () => {
assert.strictEqual(sum(2, 3), 5);
});Chạy npm test trên máy để chắc chắn test qua trước khi đưa vào CI.
Tạo file .github/workflows/ci.yml:
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]
steps:
- name: Lấy mã nguồn
uses: actions/checkout@v4
- name: Cài Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Cài thư viện
run: npm ci
- name: Chạy kiểm thử
run: npm testGiải thích: khối on khai báo workflow chạy khi push hoặc mở PR vào nhánh main. matrix chạy cùng job với nhiều phiên bản Node để biết code có tương thích không. actions/checkout tải code về runner. setup-node cài Node và bật bộ nhớ đệm npm để lần sau nhanh hơn. Lệnh npm ci cài đúng theo file khóa package-lock.json, phù hợp cho CI hơn npm install; vì vậy hãy chắc rằng bạn đã commit file khóa. Phiên bản của các action (như @v4) có thể thay đổi theo thời gian, hãy tham khảo tài liệu để dùng bản mới.
git add .
git commit -m "Thêm workflow CI"
git push origin mainVào tab Actions của repository để xem workflow chạy. Bấm vào một lần chạy, rồi vào từng job và step để đọc log. Dấu tích xanh nghĩa là thành công, dấu x đỏ là có bước thất bại và log sẽ cho bạn biết lý do.
Trong Settings > Branches, bạn có thể tạo quy tắc yêu cầu CI phải xanh thì mới được gộp Pull Request. Đây là cách biến CI từ "gợi ý" thành "rào chắn" thật sự.
Đừng viết khóa API hay mật khẩu vào file workflow. Lưu chúng trong Settings > Secrets and variables > Actions và dùng qua cú pháp ${{ secrets.TEN_BI_MAT }}. Chú ý các workflow chạy từ fork có hạn chế truy cập bí mật vì lý do an toàn.
npm ci báo lỗi.on.Chỉ với một file YAML ngắn, bạn có hệ thống kiểm thử tự động chạy trên nhiều phiên bản Node. Từ đây có thể mở rộng thêm bước lint, build, và sau cùng là triển khai tự động (CD).
Để học CI/CD và quy trình DevOps trọn vẹn, hãy khám phá các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment