如何取消GitHub工作流中无对应runs-on标签的任务运行?
取消无对应自托管Runner的GitHub Actions任务运行方案
针对你的场景,有两种简单直接的实现方式:
方法一:直接限定矩阵中的有效Runner组合
既然你只有带ubuntu22.04,X64标签的自托管Runner,可直接修改矩阵配置,只保留存在对应Runner的系统与架构组合,这样工作流不会生成多余的任务:
name: Test on: push: branches: - action/test jobs: super_test: strategy: matrix: # 仅保留有对应Runner的组合 include: - os: ubuntu22.04 arch: X64 runs-on: [self-hosted, "${{ matrix.os }}", "${{ matrix.arch }}"] name: "With my ${{ matrix.os }}:${{ matrix.arch }}" steps: - uses: actions/checkout@v4.1.1 - name: Print Something run: git branch
方法二:用条件判断跳过无效任务
如果你需要保留原矩阵的结构(比如后续可能添加其他Runner),可在Job级别添加if条件,仅当组合匹配现有Runner时才执行任务,其他任务会被标记为“已跳过”:
name: Test on: push: branches: - action/test jobs: super_test: strategy: matrix: os: [ubuntu22.04] arch: [X64, X86, ARM64] # 仅执行存在对应Runner的任务组合 if: matrix.os == 'ubuntu22.04' && matrix.arch == 'X64' runs-on: [self-hosted, "${{ matrix.os }}", "${{ matrix.arch }}"] name: "With my ${{ matrix.os }}:${{ matrix.arch }}" steps: - uses: actions/checkout@v4.1.1 - name: Print Something run: git branch
内容的提问来源于stack exchange,提问作者Jinha Hwang
相关产品推荐
相关产品推荐

