如何解决Github Actions:如何运行通过工作流程_事件事件在非主分支上创建的工作流程?
有人可以帮助我了解Github动作标签的行为吗?作为Actions在第三方仓库上工作的新手,我希望能够在分支上创建一个动作,并在 workflow_dispatch 事件上执行它。我没有成功完成此操作,但是发现了以下内容:
- “操作”选项卡将根据与上次执行的工作流相关的分支更改在其上找到工作流和操作代码的分支。例如如果使用运行工作流按钮从“操作”选项卡中执行了某些工作流,并且“ 使用工作流来自” 下拉菜单设置为某个分支,分支-A,则“工作流程” 面板将取自Branch-A的 .github / 版本。
- 此工作流程具有工作流程_调度事件触发器。文本不会随分支更改。它似乎取自 master 。或者,它可以从最后一组结果中获取。我尚未对此进行测试,因为这两种方法均无济于事。
解决方法是在push事件上执行,虽然可以,但是考虑到Github的高标准设计,这似乎不成立。
以上听起来是否a)关于权利,b)您以哪种方式看待它,而不是最佳行为?还是有更好的方法来构建和测试动作?
解决方法
您可以使用 Github CLI 从命令行在功能分支中运行仍在开发中的工作流。 documentation 说:
在存储库默认分支以外的分支上运行工作流 分支,使用 --ref 标志。
gh workflow run workflow --ref branch-name
要添加输入参数,请像这样运行:
gh workflow run workflow --ref branch-name -f myparameter=myvalue
- a) 看起来像你描述的那样工作
- b) 当您在非主分支上运行工作流并且在此分支上工作流名称更改为新内容时,文本似乎发生了变化...
这个工作流名称的变化真的很奇怪。我找不到任何描述此行为的文档。
测试工作流程
在测试之前需要做的一件事是将具有相同文件名的虚拟工作流实际添加到 main
/master
。没有此工作流将不会出现在操作选项卡中。
如何测试:
- 创建新的测试存储库。
- 推送虚拟 Readme.md 和一些虚拟
.github/workflows/workflow.yml
进行测试:
name: Test run v1
on:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-18.04
steps:
- name: Show environment v1
run: env | grep ^GITHUB
- name: Show ref v1
run: echo "===============> Version from $GITHUB_REF"
- 推送到主
- 运行操作
测试分支运行:
- 从
test-branch
创建新分支main
- 修改工作流文件
.github/workflows/workflow.yml
name: Test run v2
on:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-18.04
steps:
- name: Show environment v2
run: env | grep ^GITHUB
- name: Show ref v2
run: echo "===============> Version from $GITHUB_REF"
- 提交并推送到
test-branch
- 转到
Actions
,选择Test run v1
并在Use workflow from
设置为test-branch
的情况下运行工作流。
您应该看到与 main
工作流版本不同的步骤名称和不同的 GITHUB_REF
。
奇怪的是,在 test-branch
上运行工作流后,我以前的工作流(从 main
分支)以某种方式更改了名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。