diff mbox series

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

Message ID pull.851.git.1611806768911.gitgitgadget@gmail.com (mailing list archive)
State Accepted
Commit 238469375899f8c033e9d22295403ada4f3a3183
Headers show
Series ci: do not cancel all jobs of a matrix if one fails | expand

Commit Message

Philippe Blain Jan. 28, 2021, 4:06 a.m. UTC
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(+)


base-commit: e6362826a0409539642a5738db61827e5978e2e4

Comments

Jeff King Jan. 28, 2021, 6:35 a.m. UTC | #1
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 Jan. 28, 2021, 4:13 p.m. UTC | #2
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
diff mbox series

Patch

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