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 "[email protected]"
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/[email protected]
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!

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng