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(a)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