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

能否在GitHub Actions工作流的条件语句中调用另一个工作流文件?

GitHub Actions 条件调用工作流问题

我参考了不少相关回答,但都没法满足需求——这些方案都是直接调用另一个工作流,比如通过workflow_run触发:

on:
  workflow_run:
    workflows: ["Build"]
    types:
      - completed

这种方式会在目标工作流完成/成功时触发,但我需要的是在同一个工作流内根据条件来调用另一个工作流。目前我的代码错误处理做得不错,应该能稳定执行。

假设存在两个工作流文件:

  • workflow_1.yml
  • workflow_2.yml

我知道可以通过以下方式直接从workflow_1.yml调用workflow_2.yml:

- name: 调用另一个工作流
  uses: ./.github/workflows/workflow_2.yml

但我能不能通过类似下面的方式,在Shell脚本的条件判断里调用workflow_2.yml?

jobs:
  update_fork:
    runs-on: ubuntu-latest

    steps:
      - name: 检出复刻仓库
        uses: actions/checkout@v3
      # 其他步骤,用于让condition变为true
      - name: 条件调用工作流
        run: |
          # 其他代码
          if [ $condition == "true" ]; then
            # 这里调用workflow_2.yml
          fi

编辑1

我尝试在步骤中添加带if条件的uses语句:

- if: ${{ steps.fetch.outputs.build_app == 'true' }}
  uses: ./.github/workflows/android_build.yml

但这种方式行不通,持续抛出错误:

Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/wftest/wftest/.github/workflows/android_build.yml'. Did you forget to run actions/checkout before running your local action?

现在我明白问题所在了:不能在单个步骤中调用另一个工作流,必须通过另一个job来实现。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:16:14