Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách lên lịch chạy script Python bằng GitHub Actions
GitHub Actions cho phép bạn lên lịch chạy các script Python tự động và miễn phí, sử dụng cú pháp cron.
Với tính năng này, bạn có thể lên lịch cho các đoạn mã Python chạy vào những thời điểm cố định, chẳng hạn mỗi ngày, tuần hoặc tháng, giúp tự động hóa nhiều tác vụ mà không cần đến máy chủ. Hướng dẫn này sẽ đưa ra các bước chi tiết để bạn có thể thiết lập GitHub Actions, lên lịch chạy mã với cron, sử dụng các thư viện cần thiết từ requirements.txt
, và sử dụng biến môi trường bảo mật (như API token).
Mẫu ví dụ: Mã mẫu này chạy mỗi tuần một lần để lấy thông tin thời tiết từ một API, lưu thông tin vào file và tự động cập nhật file đó lên kho lưu trữ.
Cấu hình GitHub Actions với cú pháp cron trong Python
GitHub Actions có thể được kích hoạt qua nhiều sự kiện, trong đó có sự kiện lịch trình (schedule) để chạy workflow tại thời điểm cụ thể bằng cú pháp cron.
Bài viết này được đăng tại [free tuts .net]
.github/workflows/actions.yml on: schedule: - cron: '0 10 * * *' # chạy vào 10:00 AM UTC mỗi ngày
GitHub cung cấp 2,000 phút mỗi tháng miễn phí, đủ để bạn chạy nhiều script hàng ngày.
Lên lịch chạy script Python với GitHub Actions
Trong kho lưu trữ của bạn, tạo mã Python (ví dụ: main.py
). Sau đó, thực hiện các bước sau trong GitHub Action:
- Định nghĩa cú pháp cron
- Tải nội dung repo để runner có quyền truy cập file
- Thiết lập môi trường Python
- Cài đặt các thư viện cần thiết từ
requirements.txt
(nếu có) - Chạy script Python
Tệp mẫu actions.yml
tối thiểu để chạy mã Python theo lịch trình:
name: run main.py on: schedule: - cron: '0 0 * * 1' # Chạy lúc 00:00 thứ Hai jobs: build: runs-on: ubuntu-latest steps: - name: checkout repo content uses: actions/checkout@v2 - name: setup python uses: actions/setup-python@v4 with: python-version: '3.10' - name: install python packages run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: execute py script run: python main.py
Sử dụng biến môi trường bảo mật trong GitHub Actions
Nếu bạn cần dùng biến bảo mật như API token, GitHub cung cấp cách lưu và truy xuất biến bảo mật.
Bước 1: Thêm biến bảo mật mới trong repo tại Settings -> Secrets -> GitHub Actions -> New repository secret.
Bước 2: Dùng biến bảo mật trong GitHub Action:
jobs: - name: execute py script env: API_TOKEN: ${{ secrets.API_TOKEN }} run: python main.py
Bước 3: Trong mã Python, truy cập biến bảo mật qua môi trường:
import os API_TOKEN = os.environ.get("API_TOKEN", "Token không có sẵn")
Tự động commit và push các thay đổi
Nếu script của bạn tạo ra thay đổi trong repo, bạn có thể cấu hình GitHub Action để tự động commit và push các thay đổi này.
jobs: - name: execute py script env: API_TOKEN: ${{ secrets.API_TOKEN }} run: python main.py - name: commit files run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git add -A git diff-index --quiet HEAD || (git commit -m "Cập nhật file" --allow-empty) - name: push changes uses: ad-m/github-push-action@v0.6.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: main
Cú pháp cron tóm lược
Cú pháp cron có cấu trúc: phút giờ ngày tháng thứ
* * * * *
: Mỗi phút0 10 * * *
: 10:00 sáng mỗi ngày0 10 * * 0
: 10:00 sáng Chủ nhật0 0 1,15 * *
: Nửa đêm ngày 1 và 15 hàng tháng
Trang web crontab.guru là công cụ hữu ích để kiểm tra cú pháp cron.
Kết bài
Với các bước trên, bạn đã nắm được cách sử dụng GitHub Actions để lên lịch và chạy tự động các script Python. Từ việc cấu hình cron cho đến tích hợp các biến môi trường bảo mật và tự động commit kết quả, GitHub Actions là công cụ mạnh mẽ và tiện lợi giúp tự động hóa quy trình một cách nhanh chóng và dễ dàng. Hy vọng bài viết này giúp bạn tự tin hơn trong việc thiết lập các tác vụ định kỳ, tiết kiệm thời gian và tối ưu hoá công việc trên GitHub. Chúc bạn thực hiện thành công!