Bộ công cụ tạo luồng công việc cho GitHub Actions

Tiếp theo

Một kho lưu trữ GitHub mới chưa có quy trình CI chỉ cách một bước (git push) là sẽ gặp sự cố trong quá trình triển khai tiếp theo. Bộ công cụ này tự động tạo phiên bản khởi tạo .github/workflows/ci.yml dành cho Node, PHP hoặc Laravel, đồng thời thiết lập các bước như kiểm tra mã nguồn, thực hiện thao tác chạy phù hợp, cài đặt các phụ thuộc và chạy lệnh kiểm thử tiêu chuẩn – tất cả những gì cần thiết để hệ thống hiển thị dấu chấm xanh hoặc đỏ.

Cách tạo quy trình làm việc

  1. 1

    Chọn stack

    Node (sử dụng `actions/setup-node`), PHP (sử dụng `shivammathur/setup-php`) hoặc Laravel (PHP + `php artisan test`).

  2. 2

    Thiết lập nhánh chính

    `main` là tên mặc định; hãy thay thế nó nếu kho lưu trữ của bạn vẫn sử dụng `master` hoặc một tên tùy chỉnh.

  3. 3

    Tạo

    Công cụ này tạo một tệp YAML chứa các trigger `push` và `pull_request` trên nhánh đó.

  4. 4

    Commit vào .github/workflows/

    Tạo tệp tại `.github/workflows/ci.yml` rồi push; tab Actions sẽ sáng lên ở lần commit tiếp theo.

Quy trình làm việc như thế nào

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

Các hành động được tạo ra bởi bộ sinh

Hành động Mục đích
actions/checkout@v4 Sao chép kho mã vào Runner
actions/setup-node@v4 Cài đặt chuỗi công cụ Node
shivammathur/setup-php@v2 Cài đặt phiên bản PHP kèm các tiện ích mở rộng

Nên thêm gì tiếp theo

  • Bước Lint (npm run lint, ./vendor/bin/phpstan analyse) trước bước kiểm thử.
  • Xây dựng ma trận: chạy trên nhiều phiên bản Node/PHP bằng strategy.matrix.
  • Tải lên độ bao phủ: codecov-action hoặc coveralls-action sau bước kiểm thử.
  • Secrets: Không bao giờ hard-code token, hãy dùng secrets.XXX và định nghĩa chúng trong Settings → Actions.

Những sai lầm phổ biến

  • Quên lấy các thẻ (tag): đặt with: { fetch-depth: 0 } trên checkout khi logic phát hành của bạn đọc thẻ.
  • Dùng image Docker latest: cố định phiên bản để các lần chạy vẫn tái lập được sau nhiều tháng.
  • Chạy bộ kiểm thử kéo dài 30 phút ở mỗi lần push: chia các job dài bằng needs: để chạy song song.

Câu hỏi thường gặp

Tại thư mục .github/workflows/ci.yml trong gốc kho lưu trữ của bạn, GitHub sẽ tự động nhận các tệp YAML nằm trong thư mục này và hiển thị chúng như những quy trình làm việc riêng biệt trên tab Hành động.

Pull request từ fork vẫn chạy quy trình làm việc, nhưng với GITHUB_TOKEN được đặt ở chế độ chỉ đọc. Người đóng góp bên ngoài không thể truy cập secrets của bạn trừ khi bạn cho phép rõ ràng.

Thêm khối strategy.matrix.php: [8.2, 8.3, 8.4] và tham chiếu đến ${{ matrix.php }} trong bước setup-php. Chương trình chạy sẽ tạo một tác vụ cho mỗi phiên bản một cách song song.

Không. YAML được tạo sẽ hiển thị trên trang, không được tải lên hay lưu trữ ở bất kỳ đâu, và bạn tự sao chép ra.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác