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

如何让GitHub Workflow按顺序串行执行?

如何让GitHub Workflow按顺序执行(前一个完成后再启动下一个)

完全可以实现GitHub Workflow的顺序执行需求,主要有两种常用方案:

方案一:同一Workflow内通过needs关键字串联Jobs

如果你的任务可以拆分到同一个Workflow的不同Job中,直接用needs指定每个Job的依赖,就能让Job按顺序执行——只有前一个Job完成后,下一个才会启动。

示例配置:

name: 顺序执行任务流
on: push

jobs:
  初始化任务:
    runs-on: ubuntu-latest
    steps:
      - name: 执行初始化操作
        run: echo "初始化任务完成"

  构建任务:
    runs-on: ubuntu-latest
    needs: 初始化任务  # 依赖"初始化任务"完成后才启动
    steps:
      - name: 执行构建操作
        run: echo "构建任务完成"

  部署任务:
    runs-on: ubuntu-latest
    needs: 构建任务  # 依赖"构建任务"完成后才启动
    steps:
      - name: 执行部署操作
        run: echo "部署任务完成"

方案二:不同Workflow之间通过workflow_run事件触发

如果需要独立的Workflow按顺序执行,可以用workflow_run事件,让后一个Workflow在前一个Workflow完成后自动触发。

第一步:定义第一个Workflow(比如workflow-1.yml)

name: 前置工作流
on: push

jobs:
  核心任务:
    runs-on: ubuntu-latest
    steps:
      - name: 执行前置任务
        run: echo "前置工作流执行完成"

第二步:定义第二个Workflow(比如workflow-2.yml),依赖第一个Workflow完成

name: 后续工作流
on:
  workflow_run:
    workflows: ["前置工作流"]  # 需匹配第一个Workflow的名称
    types:
      - completed  # 仅当前置工作流完成时触发

jobs:
  后续任务:
    runs-on: ubuntu-latest
    steps:
      - name: 执行后续任务
        run: echo "后续工作流执行完成"

额外说明

  • 如果需要前一个工作流失败时也触发后续工作流,可以在types里添加failed,或者结合if条件判断。
  • 跨Workflow触发时,要确保仓库的Actions权限配置正确,允许Workflow之间互相触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:47:22