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

如何在GitHub Actions的workflow_call中禁用快速失败?

让GitHub Actions子工作流(workflow_call)保留所有任务执行结果的方法

问题背景

我正在构建可复用的GitHub Actions CI流程:以ci.yml作为根工作流响应代码变更,调用rust.yml、node.yml等子工作流。子工作流包含build、test、audit等独立任务,但当前遇到以下问题:

  • 子工作流(如node.yml)中任意任务失败时,该工作流内其他待处理任务会立即被取消;
  • 若将所有任务直接放在ci.yml中,即使有任务失败,其他任务仍会执行完成,这是我需要的行为——希望查看所有任务的执行结果,而非某一任务失败就终止其他任务。

解决方案

在子工作流的jobs层级添加fail-fast: false配置,即可禁用子工作流内的快速失败机制,让所有任务独立执行直至完成。

修改后的node.yml示例

on:
  workflow_call: {}

jobs:
  # 禁用子工作流内的快速失败,确保所有任务执行完成
  fail-fast: false

  build:
    runs-on: ubuntu-latest
    steps:
      - run: sleep 60

  test:
    runs-on: ubuntu-latest
    steps:
      - run: sleep 30 && exit 1

  audit:
    runs-on: ubuntu-latest
    steps:
      - run: sleep 90

原理说明

GitHub Actions中,子工作流默认启用fail-fast: true(根工作流中独立任务不会因其他任务失败被取消)。通过在子工作流的jobs块中显式设置fail-fast: false,可以让子工作流内的所有任务不受其他任务失败状态的影响,全部执行完成后再返回整体结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:43:14