如何从 master 以外的分支运行 GitHub Action?

问题描述 投票:0回答:5

我在 GitHub 中有一个存储库,我想创建一个 Action 来构建 Docker 映像并将其推送到 DockerHub。我知道该怎么做,但如果我在 master 以外的分支中创建操作,GitHub 不会运行它。

这是一个已知问题(工作流程文件仅从主站获取?)。

有什么办法可以解决这个问题吗?

github github-actions
5个回答
40
投票

根据 GitHub Actions 官方文档(触发工作流程):

发生以下步骤来触发工作流程运行:

  1. 您的存储库上发生了一个事件,生成的事件 Webhook 具有关联的提交 SHA 和 Git 引用。

  2. 在存储库中的 .github/workflows 目录中搜索关联提交 SHA 或 Git 引用的工作流文件。工作流程文件必须存在于要考虑的提交 SHA 或 Git 引用中。

    例如,如果事件发生在特定存储库分支上,则工作流文件必须存在于该分支上的存储库中。

  3. 检查该提交 SHA 和 Git 引用的工作流程文件,并为具有 on: 与触发事件匹配的值的任何工作流程触发新的工作流程运行。

    工作流在触发事件的同一提交 SHA 和 Git 引用上在存储库的代码上运行。当工作流运行时,GitHub 在运行器环境中设置 GITHUB_SHA(提交 SHA)和 GITHUB_REF(Git ref)环境变量。有关详细信息,请参阅“使用环境变量”。

因此,为了测试工作流程,我们需要在创建的分支中执行 git 操作(即 do

push
)。


18
投票
on:
  push:
    branches:
      - "YOUR-TEST-BRANCH"
  pull_request:
    branches:
      - "main" 
    paths:
      - ".github/workflows/test.yaml"

4
投票

什么对我有用(通过反复试验)

  1. 在 .github/workflows 文件夹中创建一个空的 YAML 文件
  2. 创建 PR 将该文件移动到您的分支
  3. 在您的分支中,您现在可以进行必要的编辑以使 GH Action 启动并运行。注意:除了更新 YAML,您还需要进行更改 实际上触发了工作流程(我正在使用下面的触发器,请注意缺少
    '.github'
    路径触发器)。
on:
  push:
    paths:
      - 'path/to/your/code/**'

0
投票

如果您也添加

workflow_dispatch:
作为触发器会有帮助吗?

在这种情况下,您将能够从

GitHub>Actions
选项卡在选定的分支上手动运行工作流程。


0
投票

由于你的问题没有得到妥善解决,我想描述一下。 如果问题还没有解决,

您只需要在特定分支中创建一个 .github/workflows 文件夹 您需要在其中运行 Github Actions。 创建 yaml 工作流程文件。 在以下位置使用所需的分支名称: 分支:

© www.soinside.com 2019 - 2024. All rights reserved.