diff mbox series

gitlab-ci: Allow adding manual jobs on cirrus-ci

Message ID 20220314143130.28503-1-philippe.mathieu.daude@gmail.com (mailing list archive)
State New, archived
Headers show
Series gitlab-ci: Allow adding manual jobs on cirrus-ci | expand

Commit Message

Philippe Mathieu-Daudé March 14, 2022, 2:31 p.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

By default, all Cirrus-CI jobs are added as 'on_success' (the
default value). Add a ${MANUAL_JOB} variable (default to 0)
to be able to add manual jobs.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .gitlab-ci.d/cirrus.yml       | 2 ++
 .gitlab-ci.d/cirrus/build.yml | 1 +
 2 files changed, 3 insertions(+)

Comments

Thomas Huth May 17, 2022, 10:10 a.m. UTC | #1
On 14/03/2022 15.31, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> By default, all Cirrus-CI jobs are added as 'on_success' (the
> default value). Add a ${MANUAL_JOB} variable (default to 0)
> to be able to add manual jobs.
> 
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   .gitlab-ci.d/cirrus.yml       | 2 ++
>   .gitlab-ci.d/cirrus/build.yml | 1 +
>   2 files changed, 3 insertions(+)
> 
> diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
> index b96b22e269..9e640019dd 100644
> --- a/.gitlab-ci.d/cirrus.yml
> +++ b/.gitlab-ci.d/cirrus.yml
> @@ -44,6 +44,8 @@
>       # Allow on 'staging' branch and 'stable-X.Y-staging' branches only
>       - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/'
>         when: never
> +    - if: '$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN && $MANUAL_JOB == "1"'
> +      when: manual
>       - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
>   
>   x64-freebsd-12-build:
> diff --git a/.gitlab-ci.d/cirrus/build.yml b/.gitlab-ci.d/cirrus/build.yml
> index c555f5d36e..c58dc86855 100644
> --- a/.gitlab-ci.d/cirrus/build.yml
> +++ b/.gitlab-ci.d/cirrus/build.yml
> @@ -14,6 +14,7 @@ env:
>     MAKE: "@MAKE@"
>     CONFIGURE_ARGS: "@CONFIGURE_ARGS@"
>     TEST_TARGETS: "@TEST_TARGETS@"
> +  MANUAL_JOB: 0
>   
>   build_task:
>     install_script:

  Hi Philippe!

Sorry for the late reply ... I think this might collide with Daniel's patch 
that turns most jobs to manual mode
(https://lore.kernel.org/all/20210812180403.4129067-3-berrange@redhat.com/) 
which he is hopefully going to respin soon ... but anyway, if you add a 
variable like this, there should be an update to docs/devel/ci-jobs.rst.inc 
to describe the new variable, otherwise you might be the only one who's 
using it.

  Thomas
Daniel P. Berrangé May 17, 2022, 10:30 a.m. UTC | #2
On Tue, May 17, 2022 at 12:10:30PM +0200, Thomas Huth wrote:
> On 14/03/2022 15.31, Philippe Mathieu-Daudé wrote:
> > From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > 
> > By default, all Cirrus-CI jobs are added as 'on_success' (the
> > default value). Add a ${MANUAL_JOB} variable (default to 0)
> > to be able to add manual jobs.
> > 
> > Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > ---
> >   .gitlab-ci.d/cirrus.yml       | 2 ++
> >   .gitlab-ci.d/cirrus/build.yml | 1 +
> >   2 files changed, 3 insertions(+)
> > 
> > diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
> > index b96b22e269..9e640019dd 100644
> > --- a/.gitlab-ci.d/cirrus.yml
> > +++ b/.gitlab-ci.d/cirrus.yml
> > @@ -44,6 +44,8 @@
> >       # Allow on 'staging' branch and 'stable-X.Y-staging' branches only
> >       - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/'
> >         when: never
> > +    - if: '$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN && $MANUAL_JOB == "1"'
> > +      when: manual



> >       - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
> >   x64-freebsd-12-build:
> > diff --git a/.gitlab-ci.d/cirrus/build.yml b/.gitlab-ci.d/cirrus/build.yml
> > index c555f5d36e..c58dc86855 100644
> > --- a/.gitlab-ci.d/cirrus/build.yml
> > +++ b/.gitlab-ci.d/cirrus/build.yml
> > @@ -14,6 +14,7 @@ env:
> >     MAKE: "@MAKE@"
> >     CONFIGURE_ARGS: "@CONFIGURE_ARGS@"
> >     TEST_TARGETS: "@TEST_TARGETS@"
> > +  MANUAL_JOB: 0

This addition doesn't make sense.  build.yml is config that is run
by Cirrus CI.

The MANUAL_JOB  env is interpreted by GitLab CI, so would only ever
be set by jobs in .gitlab-ci.d/cirrus.yml

> >   build_task:
> >     install_script:
> 
>  Hi Philippe!
> 
> Sorry for the late reply ... I think this might collide with Daniel's patch
> that turns most jobs to manual mode
> (https://lore.kernel.org/all/20210812180403.4129067-3-berrange@redhat.com/)
> which he is hopefully going to respin soon ... but anyway, if you add a
> variable like this, there should be an update to docs/devel/ci-jobs.rst.inc
> to describe the new variable, otherwise you might be the only one who's
> using it.

IIUC, this MANUAL_JOB variable isn't for end developer usage, rather it is
for usage when adding jobs to .gitlab-ci.d/cirrus.yml, so I don't think it
needs documenting there. THis simply lets us add a bunch more jobs to
cirrus.yml without causing timeout problems by having them all run at
once, providing we put MANUAL_JOB: 1 in the config for the new job. 

No need to delay this for sake of my series. I'll adapt to whatever
exists at the time I'm rebasing.

With regards,
Daniel
Thomas Huth May 17, 2022, 10:45 a.m. UTC | #3
On 17/05/2022 12.30, Daniel P. Berrangé wrote:
> On Tue, May 17, 2022 at 12:10:30PM +0200, Thomas Huth wrote:
>> On 14/03/2022 15.31, Philippe Mathieu-Daudé wrote:
>>> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>
>>> By default, all Cirrus-CI jobs are added as 'on_success' (the
>>> default value). Add a ${MANUAL_JOB} variable (default to 0)
>>> to be able to add manual jobs.
>>>
>>> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> ---
>>>    .gitlab-ci.d/cirrus.yml       | 2 ++
>>>    .gitlab-ci.d/cirrus/build.yml | 1 +
>>>    2 files changed, 3 insertions(+)
>>>
>>> diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
>>> index b96b22e269..9e640019dd 100644
>>> --- a/.gitlab-ci.d/cirrus.yml
>>> +++ b/.gitlab-ci.d/cirrus.yml
>>> @@ -44,6 +44,8 @@
>>>        # Allow on 'staging' branch and 'stable-X.Y-staging' branches only
>>>        - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/'
>>>          when: never
>>> +    - if: '$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN && $MANUAL_JOB == "1"'
>>> +      when: manual
> 
> 
> 
>>>        - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
>>>    x64-freebsd-12-build:
>>> diff --git a/.gitlab-ci.d/cirrus/build.yml b/.gitlab-ci.d/cirrus/build.yml
>>> index c555f5d36e..c58dc86855 100644
>>> --- a/.gitlab-ci.d/cirrus/build.yml
>>> +++ b/.gitlab-ci.d/cirrus/build.yml
>>> @@ -14,6 +14,7 @@ env:
>>>      MAKE: "@MAKE@"
>>>      CONFIGURE_ARGS: "@CONFIGURE_ARGS@"
>>>      TEST_TARGETS: "@TEST_TARGETS@"
>>> +  MANUAL_JOB: 0
> 
> This addition doesn't make sense.  build.yml is config that is run
> by Cirrus CI.
> 
> The MANUAL_JOB  env is interpreted by GitLab CI, so would only ever
> be set by jobs in .gitlab-ci.d/cirrus.yml
> 
>>>    build_task:
>>>      install_script:
>>
>>   Hi Philippe!
>>
>> Sorry for the late reply ... I think this might collide with Daniel's patch
>> that turns most jobs to manual mode
>> (https://lore.kernel.org/all/20210812180403.4129067-3-berrange@redhat.com/)
>> which he is hopefully going to respin soon ... but anyway, if you add a
>> variable like this, there should be an update to docs/devel/ci-jobs.rst.inc
>> to describe the new variable, otherwise you might be the only one who's
>> using it.
> 
> IIUC, this MANUAL_JOB variable isn't for end developer usage, rather it is
> for usage when adding jobs to .gitlab-ci.d/cirrus.yml, so I don't think it
> needs documenting there. THis simply lets us add a bunch more jobs to
> cirrus.yml without causing timeout problems by having them all run at
> once, providing we put MANUAL_JOB: 1 in the config for the new job.

Ok, but then this patch is incomplete. This should either be in a series 
that introduces such new jobs, or/and rework the NetBSD and OpenBSD jobs to 
use this variable, too.

  Thomas
diff mbox series

Patch

diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index b96b22e269..9e640019dd 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -44,6 +44,8 @@ 
     # Allow on 'staging' branch and 'stable-X.Y-staging' branches only
     - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/'
       when: never
+    - if: '$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN && $MANUAL_JOB == "1"'
+      when: manual
     - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
 
 x64-freebsd-12-build:
diff --git a/.gitlab-ci.d/cirrus/build.yml b/.gitlab-ci.d/cirrus/build.yml
index c555f5d36e..c58dc86855 100644
--- a/.gitlab-ci.d/cirrus/build.yml
+++ b/.gitlab-ci.d/cirrus/build.yml
@@ -14,6 +14,7 @@  env:
   MAKE: "@MAKE@"
   CONFIGURE_ARGS: "@CONFIGURE_ARGS@"
   TEST_TARGETS: "@TEST_TARGETS@"
+  MANUAL_JOB: 0
 
 build_task:
   install_script: