# [PATCH] ci: do not cancel all jobs of a matrix if one fails

3 messages from 2021-01-28 to 2021-01-28. Participants: Philippe Blain via GitGitGadget, Jeff King, Johannes Schindelin.
Thread: https://gitlist.dev/t/55063

## Philippe Blain via GitGitGadget, 2021-01-28 04:06

Subject: [PATCH] ci: do not cancel all jobs of a matrix if one fails
Message-ID: <pull.851.git.1611806768911.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.851.git.1611806768911.gitgitgadget%40gmail.com

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The CI/PR GitHub Actions workflow uses the 'matrix' strategy for the
"windows-test", "vs-test", "regular" and "dockerized" jobs. The default
behaviour of GitHub Actions is to cancel all in-progress jobs in a
matrix if one of the job of the matrix fails [1].

This is not ideal as a failure early in a job, like during installation of
the build/test dependencies on a specific platform, leads to the
cancellation of all other jobs in the matrix.

Set the 'fail-fast' variable to 'false' for all four matrix jobs in the
workflow.

[1] https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
    ci: do not cancel all jobs of a matrix if one fails

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-851%2Fphil-blain%2Fgh-actions-dont-fail-fast-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-851/phil-blain/gh-actions-dont-fail-fast-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/851

 .github/workflows/main.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index aef66436484..f6885e88ee6 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -123,6 +123,7 @@ jobs:
     runs-on: windows-latest
     needs: [windows-build]
     strategy:
+      fail-fast: false
       matrix:
         nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     steps:
@@ -227,6 +228,7 @@ jobs:
     runs-on: windows-latest
     needs: [vs-build, windows-build]
     strategy:
+      fail-fast: false
       matrix:
         nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     steps:
@@ -272,6 +274,7 @@ jobs:
     needs: ci-config
     if: needs.ci-config.outputs.enabled == 'yes'
     strategy:
+      fail-fast: false
       matrix:
         vector:
           - jobname: linux-clang
@@ -309,6 +312,7 @@ jobs:
     needs: ci-config
     if: needs.ci-config.outputs.enabled == 'yes'
     strategy:
+      fail-fast: false
       matrix:
         vector:
         - jobname: linux-musl

base-commit: e6362826a0409539642a5738db61827e5978e2e4
-- 
gitgitgadget

```

## Jeff King, 2021-01-28 06:35

Subject: Re: [PATCH] ci: do not cancel all jobs of a matrix if one fails
Message-ID: <YBJbJOLyh+ksolVB@coredump.intra.peff.net>
URL: https://gitlist.dev/e/YBJbJOLyh%2BksolVB%40coredump.intra.peff.net
In-Reply-To: <pull.851.git.1611806768911.gitgitgadget@gmail.com>

```
On Thu, Jan 28, 2021 at 04:06:08AM +0000, Philippe Blain via GitGitGadget wrote:

> From: Philippe Blain <levraiphilippeblain@gmail.com>
> 
> The CI/PR GitHub Actions workflow uses the 'matrix' strategy for the
> "windows-test", "vs-test", "regular" and "dockerized" jobs. The default
> behaviour of GitHub Actions is to cancel all in-progress jobs in a
> matrix if one of the job of the matrix fails [1].
> 
> This is not ideal as a failure early in a job, like during installation of
> the build/test dependencies on a specific platform, leads to the
> cancellation of all other jobs in the matrix.
> 
> Set the 'fail-fast' variable to 'false' for all four matrix jobs in the
> workflow.

I think this is worth doing. Thanks for rolling it up into a patch.

-Peff

```

## Johannes Schindelin, 2021-01-28 16:13

Subject: Re: [PATCH] ci: do not cancel all jobs of a matrix if one fails
Message-ID: <nycvar.QRO.7.76.6.2101281712460.54@tvgsbejvaqbjf.bet>
URL: https://gitlist.dev/e/nycvar.QRO.7.76.6.2101281712460.54%40tvgsbejvaqbjf.bet
In-Reply-To: <YBJbJOLyh+ksolVB@coredump.intra.peff.net>

```
Hi,

On Thu, 28 Jan 2021, Jeff King wrote:

> On Thu, Jan 28, 2021 at 04:06:08AM +0000, Philippe Blain via GitGitGadget wrote:
>
> > From: Philippe Blain <levraiphilippeblain@gmail.com>
> >
> > The CI/PR GitHub Actions workflow uses the 'matrix' strategy for the
> > "windows-test", "vs-test", "regular" and "dockerized" jobs. The default
> > behaviour of GitHub Actions is to cancel all in-progress jobs in a
> > matrix if one of the job of the matrix fails [1].
> >
> > This is not ideal as a failure early in a job, like during installation of
> > the build/test dependencies on a specific platform, leads to the
> > cancellation of all other jobs in the matrix.
> >
> > Set the 'fail-fast' variable to 'false' for all four matrix jobs in the
> > workflow.
>
> I think this is worth doing.

Me, too. ACK!

Thanks,
Dscho

```
