qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/3] gitlab: support for FreeBSD 12, 13 and macOS 11 via cirr


From: Alex Bennée
Subject: Re: [PATCH 2/3] gitlab: support for FreeBSD 12, 13 and macOS 11 via cirrus-run
Date: Mon, 05 Jul 2021 11:35:02 +0100
User-agent: mu4e 1.5.13; emacs 28.0.50

Daniel P. Berrangé <berrange@redhat.com> writes:

> On Wed, Jun 30, 2021 at 03:58:57PM -0300, Wainer dos Santos Moschetta wrote:
>> Hi,
>> 
>> On 6/25/21 2:22 PM, Daniel P. Berrangé wrote:
>> > This adds support for running 4 jobs via Cirrus CI runners:
>> > 
>> >   * FreeBSD 12
>> >   * FreeBSD 13
>> >   * macOS 11 with default XCode
>> >   * macOS 11 with latest XCode
>> > 
>> > The gitlab job uses a container published by the libvirt-ci
>> > project (https://gitlab.com/libvirt/libvirt-ci) that contains
>> > the 'cirrus-run' command. This accepts a short yaml file that
>> > describes a single Cirrus CI job, runs it using the Cirrus CI
>> > REST API, and reports any output to the console.
>> > 
>> > In this way Cirrus CI is effectively working as an indirect
>> > custom runner for GitLab CI pipelines. The key benefit is that
>> > Cirrus CI job results affect the GitLab CI pipeline result and
>> > so the user only has look at one CI dashboard.
>> > 
>> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>> > ---
>> >   .gitlab-ci.d/cirrus.yml             | 103 ++++++++++++++++++++++++++++
>> >   .gitlab-ci.d/cirrus/README.rst      |  54 +++++++++++++++
>> >   .gitlab-ci.d/cirrus/build.yml       |  35 ++++++++++
>> >   .gitlab-ci.d/cirrus/freebsd-12.vars |  13 ++++
>> >   .gitlab-ci.d/cirrus/freebsd-13.vars |  13 ++++
>> >   .gitlab-ci.d/cirrus/macos-11.vars   |  15 ++++
>> >   .gitlab-ci.d/qemu-project.yml       |   1 +
>> >   7 files changed, 234 insertions(+)
>> >   create mode 100644 .gitlab-ci.d/cirrus.yml
>> >   create mode 100644 .gitlab-ci.d/cirrus/README.rst
>> >   create mode 100644 .gitlab-ci.d/cirrus/build.yml
>> >   create mode 100644 .gitlab-ci.d/cirrus/freebsd-12.vars
>> >   create mode 100644 .gitlab-ci.d/cirrus/freebsd-13.vars
>> >   create mode 100644 .gitlab-ci.d/cirrus/macos-11.vars
>> > 
>> > diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
>> > new file mode 100644
>> > index 0000000000..d7b4cce79b
>> > --- /dev/null
>> > +++ b/.gitlab-ci.d/cirrus.yml
>> > @@ -0,0 +1,103 @@
>> > +# Jobs that we delegate to Cirrus CI because they require an operating
>> > +# system other than Linux. These jobs will only run if the required
>> > +# setup has been performed on the GitLab account.
>> > +#
>> > +# The Cirrus CI configuration is generated by replacing target-specific
>> > +# variables in a generic template: some of these variables are provided
>> > +# when the GitLab CI job is defined, others are taken from a shell
>> > +# snippet generated using lcitool.
>> > +#
>> > +# Note that the $PATH environment variable has to be treated with
>> > +# special care, because we can't just override it at the GitLab CI job
>> > +# definition level or we risk breaking it completely.
>> > +.cirrus_build_job:
>> > +  stage: build
>> > +  image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
>> > +  needs: []
>> > +  script:
>> > +    - source .gitlab-ci.d/cirrus/$NAME.vars
>> > +    - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
>> > +          -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
>> > +          -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
>> > +          -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
>> > +          -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
>> > +          -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
>> > +          -e "s|[@]CIRRUS_VM_CPUS@|$CIRRUS_VM_CPUS|g"
>> > +          -e "s|[@]CIRRUS_VM_RAM@|$CIRRUS_VM_RAM|g"
>> > +          -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
>> > +          -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
>> > +          -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
>> > +          -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
>> > +          -e "s|[@]PKGS@|$PKGS|g"
>> > +          -e "s|[@]MAKE@|$MAKE|g"
>> > +          -e "s|[@]PYTHON@|$PYTHON|g"
>> > +          -e "s|[@]PIP3@|$PIP3|g"
>> > +          -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
>> > +          -e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g"
>> > +          -e "s|[@]TEST_TARGETSS@|$TEST_TARGETSS|g"
>> > +      <.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
>> > +    - cat .gitlab-ci.d/cirrus/$NAME.yml
>> > +    - cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
>> > +  rules:
>> > +    - if: "$TEMPORARILY_DISABLED"
>> 
>> Reading 'TEMPORARILY_DISABLED' I immediately think the job is malfunctioning
>> or under maintenance.
>
> Actually this is cruft that I mistakenly copied from libvirt's rules.
>
>> But since the plan is to keep it running as 'non-gate' until it proves
>> reliable, so maybe you could rename the variable to 'NON_GATE' or
>> 'STAGING_JOB' (i.e. some words to better express the intent).
>
> We can just remove the 'if $TEMPORARILY_DISABLED' bit and
> have only the 'allow_failure: true' bit

I've cleaned that up on testing/next



-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]