如何通过GitHub Workflow设置Cron定时任务运行服务器上的app.py
配置解决方案
一、GitHub Workflow 配置修正
你原有配置的两个疑问解答:
uses: actions/checkout@v2是必须项:这个操作会将你的仓库代码拉取到Actions运行的Ubuntu虚拟机中,没有这一步运行环境中不存在你的项目文件,无法执行脚本。建议升级为最新的v4版本,兼容性更好。run字段填写python app.py即可,但需要先配置Python运行环境、安装依赖、注入环境变量,同时你原有配置存在YAML缩进错误,缺少steps字段,修正后的完整配置如下:
# .github/workflows/main.yml on: schedule: # 注意Cron使用UTC时间,以下为每周一到周五UTC时间11-13点每10分钟运行,对应UTC+8时区为19-21点,可按需调整 - cron: "*/10 11-13 * * 1-5" # 可选配置:添加手动触发入口,方便测试时直接在仓库页面点击运行 workflow_dispatch: jobs: run_email_tweet_bot: runs-on: ubuntu-latest steps: # 拉取仓库代码 - uses: actions/checkout@v4 # 配置Python环境,版本可替换为你本地使用的版本 - name: 配置Python环境 uses: actions/setup-python@v5 with: python-version: '3.10' # 安装项目依赖 - name: 安装依赖 run: | python -m pip install --upgrade pip # 如有requirements.txt则使用下面这行 pip install -r requirements.txt # 没有requirements.txt就直接写你用到的依赖,比如:pip install tweepy python-dotenv # 运行主脚本 - name: 执行app.py env: # 把你本地.env文件里的所有变量按此格式配置,值对应GitHub仓库中配置的Secrets EMAIL_ACCOUNT: ${{ secrets.EMAIL_ACCOUNT }} EMAIL_PASSWORD: ${{ secrets.EMAIL_PASSWORD }} TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }} TWITTER_API_SECRET: ${{ secrets.TWITTER_API_SECRET }} # 其余.env变量逐一按上述格式添加即可 run: python app.py
配套配置步骤:
- 进入你的GitHub仓库页面,依次点击
Settings→侧边栏Secrets and variables→Actions→New repository secret,将你本地.env里的所有键值对逐一添加为仓库密钥,密钥名要和上面env块里的变量名保持完全一致。 - 如果你的项目根目录没有
requirements.txt,建议新建一个,把所有用到的第三方依赖(比如tweepy、python-dotenv等)按行写入,方便依赖安装。
二、是否需要Vercel支持
完全不需要Vercel,仅靠GitHub Actions就能满足你这个定时运行脚本的全部需求:
- GitHub提供的Ubuntu运行环境自带完整的Python运行能力,只要你的脚本没有特殊的本地硬件/资源依赖,完全可以在Actions中稳定运行。
- 额度方面:公共仓库的Actions运行时间完全免费,私有仓库每月有2000分钟的免费额度,按你设置的每10分钟运行一次、单次运行1分钟计算,每月总运行时长不到450分钟,完全覆盖使用需求。
内容的提问来源于stack exchange,提问作者ARNON
相关产品推荐
相关产品推荐

