如何基于GitHub Action矩阵中JDK11构建结果控制工作流整体状态?
解决方法
要实现你需要的条件逻辑,同时修正原配置里的语法错误,按下面的方式修改即可:
jobs: gradle: strategy: matrix: include: - jdk: 11 continue-on-error: false # JDK11构建失败直接让整个工作流失败 - jdk: 14 continue-on-error: true # JDK14构建失败不影响工作流整体结果 runs-on: ubuntu-latest # 原配置的`[linux]`写法不规范,需指定具体镜像如ubuntu-latest continue-on-error: ${{ matrix.continue-on-error }} steps: - name: Checkout Repo uses: actions/checkout@v2 # 这里省略你的其他步骤 - name: Gradle Build uses: abc_workflow@v1 with: java-version: ${{ matrix.jdk }}
关键说明
- 语法修正:原配置里
steps和jobs平级是错误的,必须将steps缩进放在gradlejob内部,否则工作流无法正常运行。 - 条件逻辑实现:
- JDK11对应的任务未启用
continue-on-error,只要它失败,整个工作流就会标记为失败,完全符合你的要求。 - JDK14对应的任务启用了
continue-on-error: true,无论其构建结果如何,都不会影响工作流的最终状态——只要JDK11构建通过,工作流整体就会显示成功。
- JDK11对应的任务未启用
内容的提问来源于stack exchange,提问作者new_bie
相关产品推荐
相关产品推荐

