GitHub 操作工作流计划不适用于非默认分支
Posted
技术标签:
【中文标题】GitHub 操作工作流计划不适用于非默认分支【英文标题】:GitHub action workflow schedule not working on non-default branch 【发布时间】:2020-12-05 17:52:47 【问题描述】:我正在尝试在名为 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
这是我尝试过的:
根据堆栈溢出答案,在主分支上运行计划,这应该会触发计划在另一个分支上工作; 添加with: ref: branch
-part。
我也尝试过在推送时触发此工作流程,这确实有效。一切运行正常。这没有with: ref: branch
-part。但据我了解,在使用计划时这是必要的,因为计划签出到默认分支的最后一次提交,因此必须将其更改为您正在处理的分支。
它似乎甚至没有尝试运行此工作流程。它没有提供尝试在“操作”选项卡下运行此工作流的记录。因此,我认为问题出在schedule
部分,因为它在推送时工作,甚至在按计划工作时也不运行。
我还尝试将一个简单的工作流按计划添加到我的master
分支,该分支确实可以运行。但是当我按计划将这个简单的工作流添加到我的workflow-test
分支时,它不再运行了。
我无法再找到有关堆栈溢出、文档或其他任何地方的修复。因此,我决定提出自己的问题。我希望有一个人可以帮助我。在此先感谢:)。
编辑:此工作流程会更新网站使用的数据。
【问题讨论】:
工作流文件是否提交到主分支? 它也不适用于我的非默认分支。看起来这方面的文档缺乏。 【参考方案1】:计划的 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
分支中的文件。
【讨论】:
是的,这行得通!非常感谢您的解决方案。但是,当时的文档似乎非常缺乏。文档中没有明确说明计划的工作流必须驻留在master
分支中。也没有其他解决方案(我能找到的)提到这个解决方案。
是的。 GitHub 有时将master
分支称为“默认分支”,因为对于某些人来说,它可能不是master
。以上是关于GitHub 操作工作流计划不适用于非默认分支的主要内容,如果未能解决你的问题,请参考以下文章
问题在于平衡括号。我正在使用堆栈进行操作。它不适用于仅一个测试用例,即')'。否则它工作正常
Xcode Cocoa 默认选择器动画不适用于 iOS 应用程序
Spring Boot @ControllerAdvice 部分工作,不适用于自定义异常
GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)