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

E. *_*zos 12 github github-actions

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

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

任何想法来解决它?

sta*_*tar 17

on:
  push:
    branches:
      - "YOUR-TEST-BRANCH"
  pull_request:
    branches:
      - "main" 
    paths:
      - ".github/workflows/test.yaml"
Run Code Online (Sandbox Code Playgroud)


E. *_*zos 7

根据官方 GitHub Actions 文档(关于工作流事件):

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

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

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

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

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

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

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

  • “如果事件发生在特定存储库分支上,则工作流文件必须存在于该分支的存储库中。” 我正在寻找什么,谢谢 (16认同)