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

问题描述

我在GitHub上有一个仓库,我想创建一个Action来构建Docker imagen并将其推送到DockerHub。我知道该怎么做,但是:如果我在除master GitHub以外的分支中创建动作,则不会运行它。

这是一个已知问题(Workflow files only picked up from master?)。

有什么想法可以解决吗?

解决方法

根据正式的GitHub Actions文档(About workflow events):

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

  1. 您的存储库中发生一个事件,并且所产生的事件Webhook具有关联的提交SHA和Git引用。

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

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

  3. 已检查提交SHA和Git ref的工作流程文件,并为以下所有具有以下条件的工作流程触发了新的工作流程运行:与触发事件匹配的值。

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

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

,

对我有用的东西(通过反复试验)

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...