我在 GitHub 中有一个存储库,我想创建一个 Action 来构建 Docker 映像并将其推送到 DockerHub。我知道该怎么做,但如果我在 master 以外的分支中创建操作,GitHub 不会运行它。
这是一个已知问题(工作流程文件仅从主站获取?)。
有什么办法可以解决这个问题吗?
根据 GitHub Actions 官方文档(触发工作流程):
发生以下步骤来触发工作流程运行:
您的存储库上发生了一个事件,生成的事件 Webhook 具有关联的提交 SHA 和 Git 引用。
在存储库中的 .github/workflows 目录中搜索关联提交 SHA 或 Git 引用的工作流文件。工作流程文件必须存在于要考虑的提交 SHA 或 Git 引用中。
例如,如果事件发生在特定存储库分支上,则工作流文件必须存在于该分支上的存储库中。检查该提交 SHA 和 Git 引用的工作流程文件,并为具有 on: 与触发事件匹配的值的任何工作流程触发新的工作流程运行。
工作流在触发事件的同一提交 SHA 和 Git 引用上在存储库的代码上运行。当工作流运行时,GitHub 在运行器环境中设置 GITHUB_SHA(提交 SHA)和 GITHUB_REF(Git ref)环境变量。有关详细信息,请参阅“使用环境变量”。
因此,为了测试工作流程,我们需要在创建的分支中执行 git 操作(即 do
push
)。
on: push: branches: - "YOUR-TEST-BRANCH" pull_request: branches: - "main" paths: - ".github/workflows/test.yaml"
什么对我有用(通过反复试验)
'.github'
路径触发器)。on:
push:
paths:
- 'path/to/your/code/**'
如果您也添加
workflow_dispatch:
作为触发器会有帮助吗?
在这种情况下,您将能够从
GitHub>Actions
选项卡在选定的分支上手动运行工作流程。
由于你的问题没有得到妥善解决,我想描述一下。 如果问题还没有解决,
您只需要在特定分支中创建一个 .github/workflows 文件夹 您需要在其中运行 Github Actions。 创建 yaml 工作流程文件。 在以下位置使用所需的分支名称: 分支: