You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub Actions定期推送空提交触发build.yml工作流?

用GitHub Actions定时推送空提交触发部署工作流

实现思路

新建一个独立的GitHub Actions工作流,通过schedule定时触发,在工作流中执行Git命令推送空提交到默认分支(main),以此触发你已有的build.yml工作流完成部署。

具体配置步骤

  1. 在仓库的.github/workflows目录下新建文件trigger-deploy.yml
  2. 填入以下配置:
name: 定时触发部署
on:
  schedule:
    - cron: '30 3 10 * *'  # 每月10日UTC时间3点30分执行
  workflow_dispatch:  # 保留手动触发选项,方便测试

jobs:
  push-empty-commit:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取仓库代码
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          persist-credentials: false

      - name: 配置Git身份
        run: |
          git config --global user.name "GitHub Actions Bot"
          git config --global user.email "actions@github.com"

      - name: 推送空提交
        run: |
          git commit --allow-empty -m "定时触发部署:应用组织级补丁更新"
          git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git main

关键细节

  • 时区注意:cron表达式采用UTC时间,如果需要对应北京时间,可将表达式改为30 19 9 * *(UTC+8时区比UTC早8小时,对应北京时间10日凌晨3点30分)
  • 权限配置:默认的GITHUB_TOKEN需要具备推送main分支的权限,若仓库开启了分支保护,要么为该token配置对应权限,要么使用个人访问令牌(PAT)存入仓库Secrets中替换GITHUB_TOKEN
  • 空提交说明:--allow-empty参数允许创建无代码变更的提交,提交信息可根据需求自定义,明确触发部署的原因

更优替代方案(推荐)

无需额外推送空提交,直接修改你现有的build.yml,添加schedule触发规则即可:

on:
  push:
    branches: [main]
  schedule:
    - cron: '30 3 10 * *'  # 直接定时触发构建部署

这种方式更简洁,不会产生无意义的提交记录污染仓库历史,建议优先采用。

内容的提问来源于stack exchange,提问作者VSanka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:45:44