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é <berra...@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 Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|