You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何触发与调用者同分支的依赖GitHub Workflow?

解决方法

当通过workflow_dispatch手动触发特定分支的build-image后,要让deploy-image也从该分支触发(运行对应分支的workflow逻辑),可以通过以下两种方式解决:

方法一:在build-image中触发对应分支的deploy-image(推荐)

直接在build-image的workflow末尾添加步骤,当构建完成且成功时,触发对应分支的deploy-image workflow:

name: build-image
on:
  workflow_dispatch:
    branches: [ '*' ]
  # 保留原有的其他触发条件
  push:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # 你的构建步骤
      - name: Build image
        run: echo "Building image..."
      
      # 添加触发deploy的步骤
      - name: Trigger deploy workflow on same branch
        if: success()
        uses: actions/github-script@v6
        with:
          script: |
            await github.rest.actions.createWorkflowDispatch({
              owner: context.repo.owner,
              repo: context.repo.repo,
              workflow_id: 'deploy-image.yml',
              ref: context.ref, // 自动使用当前build-image运行的分支
            })

这样,当你在分支feature/test手动触发build-image后,构建完成会自动触发feature/test分支的deploy-image workflow,完全使用该分支下的部署逻辑。

方法二:调整deploy-image的checkout逻辑(适用于仅需拉取分支代码)

如果你只需要让deploy-image拉取触发分支的代码(workflow逻辑仍使用默认分支的),可以修复actions/checkout的配置,同时确认上下文变量的准确性:

name: deploy-image
on:
  workflow_run:
    workflows: [ "build-image" ]
    types:
      - completed

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Debug workflow context
        run: |
          echo "Trigger branch: ${{ github.event.workflow_run.head_branch }}"
          echo "Trigger commit SHA: ${{ github.event.workflow_run.head_sha }}"
      
      - uses: actions/checkout@v3
        with:
          ref: ${{ github.event.workflow_run.head_sha }} # 使用commit SHA比分支名更准确,避免分支名冲突

使用head_sha而非head_branch是因为如果触发build-image的是PR分支或存在分支名冲突时,head_sha能精准定位到对应的代码版本。如果调试后发现变量为空,说明workflow_run上下文未正确传递,此时推荐使用方法一。


内容的提问来源于stack exchange,提问作者Ayush Mandowara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:20:10