[libvirt PATCH 4/5] ci: Add a new integration job template for the upstream QEMU scenario

Erik Skultety eskultet at redhat.com
Wed May 11 14:36:48 UTC 2022


On Wed, May 11, 2022 at 03:03:18PM +0100, Daniel P. Berrangé wrote:
> On Fri, May 06, 2022 at 05:35:19PM +0200, Erik Skultety wrote:
> > YAML anchors don't work with Shell conditions structures, so we cannot
> > simply pull in the QEMU build template conditionally like we do for
> > the other anchors. Instead we have to 'subclass' the .integration_tests
> > template and inject the QEMU building bits.
> > 
> > Signed-off-by: Erik Skultety <eskultet at redhat.com>
> > ---
> >  ci/integration-template.yml | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/ci/integration-template.yml b/ci/integration-template.yml
> > index d1934b1469..3bad143622 100644
> > --- a/ci/integration-template.yml
> > +++ b/ci/integration-template.yml
> > @@ -85,3 +85,14 @@ include:
> >      - if: '$LIBVIRT_CI_INTEGRATION'
> >        when: on_success
> >      - when: never
> > +
> > +
> > +# YAML anchors don't work with Shell conditions so we can't use a variable
> > +# to conditionally build+install QEMU from source.
> > +# Instead, create a new test job template for this scenario.
> > +.integration_tests_upstream_qemu:
> > +  extends: .integration_tests
> > +  before_script:
> > +    - !reference [.integration_tests, before_script]
> > +    - cd "$SCRATCH_DIR"
> > +    - *qemu-build-template
> 
> If we're not pull in QEMU's external gitlab config, them presumably
> this problem won't exist anymore.

It will because either way you can't do something like

'''
script:
  - if $VAR; then
      *template
    fi
'''

so the original integration_tests template has to be further extended or the
QEMU build needs to be opencoded inside with the latter being an inferior
approach IMO.

Erik



More information about the libvir-list mailing list