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 |
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
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
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 --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: