GitHub 操作工作流计划不适用于非默认分支
GitHub action workflow schedule not working on non-default branch
我正在尝试在名为 workflow-test
的 b运行ch 上设置工作流程。它必须按计划运行 并且每 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
这是我试过的:
- 运行 主 b运行ch 上的调度,根据堆栈溢出答案,它应该触发调度在另一个 b运行ch 上工作;
- 添加
with: ref: branch
部分。
我也试过在推送时触发这个工作流,这确实有效。一切 运行 和工作。这没有 with: ref: branch
部分。但据我所知,在使用时间表时这是必要的,因为时间表检查到默认 b运行ch 的最后一次提交,因此它必须更改为你正在工作的 b运行ch上。
它似乎甚至没有尝试 运行 这个工作流程。它没有在“操作”选项卡下尝试 运行 此工作流的记录。因此,我认为问题出在 schedule
部分,因为它在推送时工作并且在按计划工作时甚至不 运行。
我还尝试按计划向我的 master
b运行ch 添加一个简单的工作流程,运行。但是当我按计划将这个简单的工作流程添加到我的 workflow-test
b运行ch 时,它不再 运行。
我找不到关于堆栈溢出、文档或其他任何地方的更多修复。因此,我决定提出自己的问题。我希望有一个人可以帮助我。提前致谢:).
编辑:此工作流更新网站使用的数据。
默认或基本分支上的计划 GitHub 操作 运行,由 the documentation 指定:
Scheduled workflows run on the latest commit on the default or
base branch.
这意味着您的工作流程文件必须提交到 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 分钟 运行s (*/5
) 并列出 debug
分支中的文件。
我正在尝试在名为 workflow-test
的 b运行ch 上设置工作流程。它必须按计划运行 并且每 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
这是我试过的:
- 运行 主 b运行ch 上的调度,根据堆栈溢出答案,它应该触发调度在另一个 b运行ch 上工作;
- 添加
with: ref: branch
部分。
我也试过在推送时触发这个工作流,这确实有效。一切 运行 和工作。这没有 with: ref: branch
部分。但据我所知,在使用时间表时这是必要的,因为时间表检查到默认 b运行ch 的最后一次提交,因此它必须更改为你正在工作的 b运行ch上。
它似乎甚至没有尝试 运行 这个工作流程。它没有在“操作”选项卡下尝试 运行 此工作流的记录。因此,我认为问题出在 schedule
部分,因为它在推送时工作并且在按计划工作时甚至不 运行。
我还尝试按计划向我的 master
b运行ch 添加一个简单的工作流程,运行。但是当我按计划将这个简单的工作流程添加到我的 workflow-test
b运行ch 时,它不再 运行。
我找不到关于堆栈溢出、文档或其他任何地方的更多修复。因此,我决定提出自己的问题。我希望有一个人可以帮助我。提前致谢:).
编辑:此工作流更新网站使用的数据。
默认或基本分支上的计划 GitHub 操作 运行,由 the documentation 指定:
Scheduled workflows run on the latest commit on the default or base branch.
这意味着您的工作流程文件必须提交到 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 分钟 运行s (*/5
) 并列出 debug
分支中的文件。