[1/1] ci: restrict concurrency

Message ID 20220112065019.58924-2-jsoref@gmail.com (mailing list archive)
State Rejected, archived
Delegated to: David Marchand
Headers
Series ci: restrict concurrency |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

Josh Soref Jan. 12, 2022, 6:50 a.m. UTC
  Signed-off-by: Josh Soref <jsoref@gmail.com>
---
 .github/workflows/build.yml | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Thomas Monjalon Jan. 13, 2022, 11:42 a.m. UTC | #1
Hi,

The explanation should be in the patch, not the cover letter.
Actually, you don't need a cover letter for a single patch.
Copying it here:
"
dpdk is fairly expensive to build in GitHub.

It's helpful to abandon old builds as soon as there's a new
build waiting instead of wasting resources on the previous
round.
"

12/01/2022 07:50, Josh Soref:
> Signed-off-by: Josh Soref <jsoref@gmail.com>
> ---
> +    concurrency:
> +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{ matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
> +      cancel-in-progress: true

The goal of the CI is to catch any issue in a submitted patch.
Is your change cancelling a test of a patch when another one is submitted?
  
Josh Soref Jan. 13, 2022, 12:41 p.m. UTC | #2
On Thu, Jan 13, 2022, 6:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:

> Hi,
>
> The explanation should be in the patch, not the cover letter.
> Actually, you don't need a cover letter for a single patch.
> Copying it here:
> "
> dpdk is fairly expensive to build in GitHub.
>
> It's helpful to abandon old builds as soon as there's a new
> build waiting instead of wasting resources on the previous
> round.
> "
>
> 12/01/2022 07:50, Josh Soref:
> > Signed-off-by: Josh Soref <jsoref@gmail.com>
> > ---
> > +    concurrency:
> > +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler
> }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{
> matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
> > +      cancel-in-progress: true
>
> The goal of the CI is to catch any issue in a submitted patch.
> Is your change cancelling a test of a patch when another one is submitted?
>

If it's on the same branch or if it's in the same pull request yes,
otherwise, no.

>
  
Thomas Monjalon Feb. 2, 2022, 2:17 p.m. UTC | #3
Aaron, David,
Please could you review this patch?
Thanks

13/01/2022 13:41, Josh Soref:
> On Thu, Jan 13, 2022, 6:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> 
> > Hi,
> >
> > The explanation should be in the patch, not the cover letter.
> > Actually, you don't need a cover letter for a single patch.
> > Copying it here:
> > "
> > dpdk is fairly expensive to build in GitHub.
> >
> > It's helpful to abandon old builds as soon as there's a new
> > build waiting instead of wasting resources on the previous
> > round.
> > "
> >
> > 12/01/2022 07:50, Josh Soref:
> > > Signed-off-by: Josh Soref <jsoref@gmail.com>
> > > ---
> > > +    concurrency:
> > > +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler
> > }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{
> > matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
> > > +      cancel-in-progress: true
> >
> > The goal of the CI is to catch any issue in a submitted patch.
> > Is your change cancelling a test of a patch when another one is submitted?
> >
> 
> If it's on the same branch or if it's in the same pull request yes,
> otherwise, no.
  
Aaron Conole Feb. 3, 2022, 8:21 p.m. UTC | #4
Thomas Monjalon <thomas@monjalon.net> writes:

> Aaron, David,
> Please could you review this patch?
> Thanks
>
> 13/01/2022 13:41, Josh Soref:
>> On Thu, Jan 13, 2022, 6:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>> 
>> > Hi,
>> >
>> > The explanation should be in the patch, not the cover letter.
>> > Actually, you don't need a cover letter for a single patch.
>> > Copying it here:
>> > "
>> > dpdk is fairly expensive to build in GitHub.
>> >
>> > It's helpful to abandon old builds as soon as there's a new
>> > build waiting instead of wasting resources on the previous
>> > round.
>> > "
>> >
>> > 12/01/2022 07:50, Josh Soref:
>> > > Signed-off-by: Josh Soref <jsoref@gmail.com>
>> > > ---
>> > > +    concurrency:
>> > > +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler
>> > }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{
>> > matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
>> > > +      cancel-in-progress: true
>> >
>> > The goal of the CI is to catch any issue in a submitted patch.
>> > Is your change cancelling a test of a patch when another one is submitted?
>> >
>> 
>> If it's on the same branch or if it's in the same pull request yes,
>> otherwise, no.

We currently have a report on every patch, which helps us when a patch
series has a breaking failure in the middle and then fixes it in a later
patch.  With the mechanism you have here, we lose that ability - it is
important to have, as a `git bisect` can be broken without this feature.

How much of a problem is this in practice?  I want us to be good
citizens, but also I don't want to lose the bisect-ability of the
series.
  
Thomas Monjalon Feb. 3, 2022, 9:44 p.m. UTC | #5
03/02/2022 21:21, Aaron Conole:
> Thomas Monjalon <thomas@monjalon.net> writes:
> 
> > Aaron, David,
> > Please could you review this patch?
> > Thanks
> >
> > 13/01/2022 13:41, Josh Soref:
> >> On Thu, Jan 13, 2022, 6:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> >> 
> >> > Hi,
> >> >
> >> > The explanation should be in the patch, not the cover letter.
> >> > Actually, you don't need a cover letter for a single patch.
> >> > Copying it here:
> >> > "
> >> > dpdk is fairly expensive to build in GitHub.
> >> >
> >> > It's helpful to abandon old builds as soon as there's a new
> >> > build waiting instead of wasting resources on the previous
> >> > round.
> >> > "
> >> >
> >> > 12/01/2022 07:50, Josh Soref:
> >> > > Signed-off-by: Josh Soref <jsoref@gmail.com>
> >> > > ---
> >> > > +    concurrency:
> >> > > +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler
> >> > }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{
> >> > matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
> >> > > +      cancel-in-progress: true
> >> >
> >> > The goal of the CI is to catch any issue in a submitted patch.
> >> > Is your change cancelling a test of a patch when another one is submitted?
> >> >
> >> 
> >> If it's on the same branch or if it's in the same pull request yes,
> >> otherwise, no.
> 
> We currently have a report on every patch, which helps us when a patch
> series has a breaking failure in the middle and then fixes it in a later
> patch.  With the mechanism you have here, we lose that ability - it is
> important to have, as a `git bisect` can be broken without this feature.

Good point.

> How much of a problem is this in practice?  I want us to be good
> citizens, but also I don't want to lose the bisect-ability of the
> series.

Bisectability is important.

So we have to reject this patch, right? Or any other idea?
  
David Marchand June 23, 2022, 7:59 a.m. UTC | #6
On Thu, Feb 3, 2022 at 10:44 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 03/02/2022 21:21, Aaron Conole:
> > Thomas Monjalon <thomas@monjalon.net> writes:
> >
> > > Aaron, David,
> > > Please could you review this patch?
> > > Thanks
> > >
> > > 13/01/2022 13:41, Josh Soref:
> > >> On Thu, Jan 13, 2022, 6:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >>
> > >> > Hi,
> > >> >
> > >> > The explanation should be in the patch, not the cover letter.
> > >> > Actually, you don't need a cover letter for a single patch.
> > >> > Copying it here:
> > >> > "
> > >> > dpdk is fairly expensive to build in GitHub.
> > >> >
> > >> > It's helpful to abandon old builds as soon as there's a new
> > >> > build waiting instead of wasting resources on the previous
> > >> > round.
> > >> > "
> > >> >
> > >> > 12/01/2022 07:50, Josh Soref:
> > >> > > Signed-off-by: Josh Soref <jsoref@gmail.com>
> > >> > > ---
> > >> > > +    concurrency:
> > >> > > +      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler
> > >> > }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{
> > >> > matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
> > >> > > +      cancel-in-progress: true
> > >> >
> > >> > The goal of the CI is to catch any issue in a submitted patch.
> > >> > Is your change cancelling a test of a patch when another one is submitted?
> > >> >
> > >>
> > >> If it's on the same branch or if it's in the same pull request yes,
> > >> otherwise, no.

You can manually (in the GHA webui) interrupt an older build if you
pushed to a same branch.

> >
> > We currently have a report on every patch, which helps us when a patch
> > series has a breaking failure in the middle and then fixes it in a later
> > patch.  With the mechanism you have here, we lose that ability - it is
> > important to have, as a `git bisect` can be broken without this feature.
>
> Good point.
>
> > How much of a problem is this in practice?  I want us to be good
> > citizens, but also I don't want to lose the bisect-ability of the
> > series.
>
> Bisectability is important.
>
> So we have to reject this patch, right? Or any other idea?

I prefer the current behavior too.
Marking patch as rejected.
  

Patch

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6cf997d6..a171d430 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,6 +12,9 @@  defaults:
 jobs:
   build:
     name: ${{ join(matrix.config.*, '-') }}
+    concurrency:
+      group: build-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.library }}-${{ matrix.config.cross }}-${{ matrix.config.mini }}-${{ github.event.pull_request.number || github.ref }}
+      cancel-in-progress: true
     runs-on: ${{ matrix.config.os }}
     env:
       AARCH64: ${{ matrix.config.cross == 'aarch64' }}