threads / patch / 55063

patchci: do not cancel all jobs of a matrix if one fails

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

## tl;dr

3 messages between Jan 28, 2021 and Jan 28, 2021. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Philippe Blain via GitGitGadget· Jan 28, 2021, 04:06 UTC · lore
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(+)
Show changes to .github/workflows/main.yml +4 −0
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· Jan 28, 2021, 06:35 UTC · re: Philippe Blain via GitGitGadget · lore

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

On Thu, Jan 28, 2021 at 04:06:08AM +0000, Philippe Blain via GitGitGadget wrote:
Show 13 quoted lines
> 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· Jan 28, 2021, 16:13 UTC · re: Jeff King · lore

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

Hi,
On Thu, 28 Jan 2021, Jeff King wrote:
Show 17 quoted lines
> 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

← back to recent threads