Philippe Mathieu-Daudé <phi...@redhat.com> writes:
> When a job fails, someone has to take care of it. As we can > not wait indefinitively of volunteers good will, introduce the > concept of "job maintainers". A job maintainer is reponsible > of keeping it working, or contact the developers having broken > it to fix it. > > When a job is added, it must have a maintainer. A job without > maintainer is not run automatically. It can however be run > manually from the WebUI. > > To declare a maintainer, it is as easy as defining the > JOB_MAINTAINER_NAME / JOB_MAINTAINER_EMAIL environment variables. So I think the problem here is the CI jobs are orthogonal to the actual tests. And the tests should be associated via MAINTAINERS with the relevant sub-systems. That is not to say that the test environments don't need some care and attention. So I'm quite happy to track updates needed to tests/docker/dockerfiles for example but just because check-block failed on an Ubuntu system doesn't mean I'm best placed to diagnose the problem. In the first instance it shouldn't happen (not merging code that regresses a test) and the second instance probably requires a block maintainer to look at the output. I think a better solution is to improve our test reporting so we can quickly point the failing tests. I notice GitLab gets nice test output from check-acceptance. What would we need to do to improve it from check, check-block and check-tcg? > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > Ideally the runner will notify the maintainer by mail that > a job fails. But we are not quite there yet. > > It would be nice if someone document this properly. > --- > .gitlab-ci.d/containers.yml | 4 ++++ > .gitlab-ci.d/crossbuilds.yml | 6 ++++++ > .gitlab-ci.yml | 6 ++++++ > 3 files changed, 16 insertions(+) > > diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml > index 7e664878cab..bd2a05008d1 100644 > --- a/.gitlab-ci.d/containers.yml > +++ b/.gitlab-ci.d/containers.yml > @@ -21,6 +21,10 @@ > after_script: > - docker logout > rules: > + # Skip unmaintained jobs > + - if: $JOB_MAINTAINER_NAME == null || $JOB_MAINTAINER_EMAIL == null > + when: manual > + allow_failure: true > - changes: > - .gitlab-ci.d/containers.yml > - tests/docker/* > diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml > index 701550f028c..aecdb2a38f1 100644 > --- a/.gitlab-ci.d/crossbuilds.yml > +++ b/.gitlab-ci.d/crossbuilds.yml > @@ -1,6 +1,12 @@ > .cross_common_job: > stage: build > image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest > + rules: > + # Skip unmaintained jobs > + - if: $JOB_MAINTAINER_NAME == null || $JOB_MAINTAINER_EMAIL == null > + when: manual > + allow_failure: true > + - when: always > > .cross_system_build_job: > extends: .cross_common_job > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 2e631d4f160..ded4f0bdd18 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -19,6 +19,12 @@ include: > > .native_common_job: > image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest > + rules: > + # Skip unmaintained jobs > + - if: $JOB_MAINTAINER_NAME == null || $JOB_MAINTAINER_EMAIL == null > + when: manual > + allow_failure: true > + - when: always > > .native_build_job: > extends: .native_common_job -- Alex Bennée