如何解决如何从master以外的分支机构运行GitHub Action?
我在GitHub上有一个仓库,我想创建一个Action来构建Docker imagen并将其推送到DockerHub。我知道该怎么做,但是:如果我在除master GitHub以外的分支中创建动作,则不会运行它。
这是一个已知问题(Workflow files only picked up from master?)。
有什么想法可以解决吗?
解决方法
根据正式的GitHub Actions文档(About workflow events):
发生以下步骤以触发工作流程运行:
您的存储库中发生一个事件,并且所产生的事件Webhook具有关联的提交SHA和Git引用。
在存储库中的.github / workflows目录中,在关联的提交SHA或Git引用中搜索工作流文件。必须考虑该提交SHA或Git引用中的工作流文件。
例如,如果事件发生在特定的存储库分支上,则工作流文件必须存在于该分支上的存储库中。已检查提交SHA和Git ref的工作流程文件,并为以下所有具有以下条件的工作流程触发了新的工作流程运行:与触发事件匹配的值。
工作流以触发事件的同一提交SHA和Git ref在存储库的代码上运行。当工作流运行时,GitHub在运行器环境中设置GITHUB_SHA(提交SHA)和GITHUB_REF(Git ref)环境变量。有关更多信息,请参见“使用环境变量”。
因此,为了测试工作流程,我们需要在创建的分支中执行git操作(即执行push
)。
对我有用的东西(通过反复试验)
- 在 .github/workflows 文件夹中创建一个空的 YAML 文件
- 创建 PR 以将该文件移动到您的分支
- 在您的分支中,您现在可以进行必要的编辑以启动和运行您的 GH 操作。注意:在更新 YAML 旁边,您还需要进行更改
实际上触发了工作流程(我正在使用下面的触发器,注意没有
'.github'
路径触发器)。
on:
push:
paths:
- 'path/to/your/code/**'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。