如何解决GitHub动作工作流程时间表不适用于非默认分支
我正在尝试在名为workflow-test
的分支上设置工作流程。它必须按计划运行,并且每24小时运行一次。此工作流程必须运行python脚本,然后提交并推送python脚本所做的更改。我让它在推送上工作,但似乎没有按时间表工作。我已经查看了有关此主题的每个问题,并尝试了所有解决方案,但无济于事。
这是我的代码:
name: update-state
on:
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v2
with:
ref: workflow-test
- name: Setup python
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Execute script
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python scripts/script.py
- name: Commit files
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add -A
git commit -m "update data" -a
- name: Push changes
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: workflow-test
这是我尝试过的:
- 根据堆栈溢出答案,在master分支上运行计划,这应该触发该计划在另一个分支上工作;
- 添加
with: ref: branch
部分。
我也尝试过在推送上触发此工作流程,但确实有效。一切都运行起来了。这没有with: ref: branch
部分。但是据我了解,使用调度表是必要的,因为调度表会检查到默认分支的最后一次提交,因此必须将其更改为您正在处理的分支。
它似乎甚至都没有尝试运行此工作流程。它在“操作”选项卡下没有提供尝试运行此工作流的记录。因此,我认为问题出在schedule
部分,因为它可以在推式工作,甚至在按计划工作时也不能运行。
我还尝试按计划将一个简单的工作流程添加到确实运行的master
分支中。但是,当我按计划将这个简单的工作流添加到我的workflow-test
分支中时,它不再运行。
在堆栈溢出,文档或其他任何地方,我都找不到修复程序。因此,我决定提出自己的问题。我希望有一个人可以帮助我。在此先感谢:)。
编辑:此工作流程将更新网站使用的数据。
解决方法
计划的GitHub Actions在the documentation指定的默认分支或基本分支上运行:
计划的工作流在默认的最新提交上运行,或者 基本分支。
这意味着您的工作流文件必须提交到master
分支。然后,它可以从其他分支中检出代码,但是工作流文件本身必须驻留在master
中。
这是演示其工作原理的最小示例。
name: Experiment
on:
schedule:
- cron: '*/5 * * * *'
jobs:
job1:
name: Debug
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v2
with: { ref: debug }
- name: List files
run: ls
此操作每5分钟运行一次(*/5
),并在debug
分支中列出文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。