summaryrefslogtreecommitdiff
path: root/ci
Commit message (Collapse)AuthorAgeFilesLines
* ci: integration: Lock the Avocado version to 98.0 for nowErik Skultety2022-11-161-1/+3
| | | | | | | | | | Avocado 99.0 causes the TCK test suite to fail with the nwfilter tests (which is another Bash framework underneath). Until the culprit is identified and fixed in Avocado, let's lock the version to 98.0 which worked with the test suite just fine. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: regenerate with lcitool manifestDaniel P. Berrangé2022-11-146-20/+28
| | | | | | | | | | | Two notable changes: * the macOS platform has switched from x86_64 to aarch64 * if a new pipeline starts before a previous one finishes, jobs marked 'interruptible: true' will be auto-cancelled Reviewed-by: Pavel Hrdina <phrdina@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: integration: Bundle only failed Avocado test resultsErik Skultety2022-10-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Latest versions of Avocado create 'by-status' symlink shortcuts to test results, IOW: # this is the main test results directory containing all data $ ls <path>/avocado/job-results/latest/test-results/ 01-scripts_networks_050-transient-lifecycle.t 02-scripts_networks_051-transient-autostart.t ... 22-scripts_networks_400-guest-bandwidth.t by_status/ # list only the failed tests $ ls -l <path>/avocado/job-results/latest/test-results/by-status/FAIL 19-scripts_networks_360-guest-network-vepa.t -> <path>/avocado/job-results/latest/test-results/19-scripts_networks_360-guest-network-vepa.t Therefore, let's bundle only the failed ones, it's going to make the log artifacts more obvious when looking for libvirt errors. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Create the avocado logs artifact dir conditionallyErik Skultety2022-10-251-1/+1
| | | | | | | | | Don't create an avocado directory in the resulting log artifacts if Avocado didn't even run (e.g. libvirt errored out on service restart). Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Use 'set +e' in the log collecting jobErik Skultety2022-10-251-0/+1
| | | | | | | | | | | All 'script' blocks are defined as 'set -e' and so a single failed return value means we won't collect some of the logs. Because of the nature of the original job's failure some of the log sources might not be available, but that's fine, however, the gitlab after_script job cannot finish prematurely. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Only create a coredump log when a core existsErik Skultety2022-10-251-1/+1
| | | | | | | | | It could be quite confusing looking at the job log artifacts and having an empty coredump log in there, IOW it doesn't really give much confidence that the reporting mechanism actually works. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Fix the test on avocado directory existenceErik Skultety2022-10-251-1/+1
| | | | | | | It's a directory, so -d should be used with 'test'. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Add an extra level of quoting for augeas set optionsErik Skultety2022-10-251-2/+2
| | | | | | | | | | | | | | | Both log filters and log outputs expect string values, however, augeas apparently requires an extra level of quotes apart from the ones we pass via shell (see comment [1]) to work properly, otherwise augeas ignores the value and returns 0. Without this fix we don't set libvirt's log level to debug, we don't set logging to a file and hence we don't include the logs in CI artifacts in case the test suite fails. [1] https://github.com/hercules-team/augeas/issues/301#issuecomment-143699880 Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: integration: Add virtnetworkd to the list of restarted servicesErik Skultety2022-10-251-2/+2
| | | | | | | | It was missing from the set. While at it, order the daemon set alphabetically. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Install python RPMs from libvirt/libvirt-python CI artifactsPeter Krempa2022-10-132-1/+41
| | | | | | | | | | | | | | | | After addition of the new libvirt-client-qemu sub-package which is using python bindings (thus creating a circular dependency between the libvirt and libvirt-python projects) the integration jobs fail with: Error: Problem: conflicting requests - nothing provides python3-libvirt >= 8.9.0-1.el9 needed by libvirt-client-qemu-8.9.0-1.el9.x86_64 The libvirt-python project now provides the RPMs in artifacts: https://gitlab.com/libvirt/libvirt-python/-/merge_requests/96 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: refresh with latest lcitool manifestDaniel P. Berrangé2022-10-0676-2016/+6219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This refresh switches the CI for contributors to be triggered by merge requests. Pushing to a branch in a fork will no longer run CI pipelines, in order to avoid consuming CI minutes. To regain the original behaviour contributors can opt-in to a pipeline on push git push <remote> -o ci.variable=RUN_PIPELINE=1 This variable can also be set globally on the repository, through the web UI options Settings -> CI/CD -> Variables, though this is not recommended. Upstream repo pushes to branches will run CI. The use of containers has changed in this update, with only the upstream repo creating containers, in order to avoid consuming contributors' limited storage quotas. A fork with existing container images may delete them. Containers will be rebuilt upstream when pushing commits with CI changes to the default branch. Any other scenario with CI changes will simply install build pre-requisite packages in a throaway environment, using the ci/buildenv/ scripts. These scripts may also be used on a contributor's local machines. With pipelines triggered by merge requests, it is also now possible to workaround the inability of contributors to run pipelines if they have run out of CI quota. A project member can trigger a pipeline from the merge request, which will run in context of upstream, however, note this should only be done after reviewing the code for any malicious CI changes. Reviewed-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: integration: Update the perl CI job namesErik Skultety2022-10-061-5/+5
| | | | | | | | | | libvirt-derived repos recently changed the way how and when CI containers are built and for that a different naming scheme was adopted to differentiate between the 2. Update the integration pipeline config to reflect this change. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: refresh generated filesPavel Hrdina2022-10-0312-4/+16
| | | | | Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
* ci: refresh with latest lcitool manifestDaniel P. Berrangé2022-09-141-1/+1
| | | | | | | This updates the FreeBSD 13 image to 13.1 which should fix the symbol lookup errors seen in CI recently. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Regenerate dockerfiles after 'sheepdog' removalPeter Krempa2022-09-017-11/+4
| | | | | | | | | | | After support for the sheepdog storage driver backend was removed we don't need to install it any longer in the containers. Regenerate the dockerfiles after: https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/314 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
* ci: Switch from macOS 11 to macOS 12Andrea Bolognani2022-08-243-4/+4
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Refresh generated filesAndrea Bolognani2022-08-243-2/+7
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Drop Debian 10Peter Krempa2022-08-1113-1462/+0
| | | | | | | | | Debian 10 reaches EOL in August of 2022. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
* ci: Move active Debian-10 jobs to Debian-11Peter Krempa2022-08-113-6/+6
| | | | | | | | | | Debian 10 will reach EOL in august of 2022 and thus libvirt will no longer target it. Move CI jobs over to Debian-11. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
* ci: Move builds from alpine-314 to alpine-315Peter Krempa2022-07-255-107/+2
| | | | | | | | 'lcitool' dropped alpine-314 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: Regenerate files with new lcitoolPeter Krempa2022-07-119-59/+105
| | | | | | | Apart from other changes this fixes failures with builds on FreeBSD. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Move upstream QEMU integration test to Fedora 36Andrea Bolognani2022-06-091-7/+7
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Add Fedora 36 to integration testsAndrea Bolognani2022-06-093-0/+24
| | | | | | | | This requires publishing the RPMs as artifacts from the regular build job. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: integration: Set 'safe.directory' when installing QEMU from gitErik Skultety2022-06-091-0/+5
| | | | | | | | | | | | | Since a fix for CVE-2022-24765 was released every git command is now checked against the context repo in which it's supposed to run resulting in a fatal error if the repo is owned by other user than the one running the git command. This means that in order to be able to do 'sudo make install', we have to set the 'safe.directory' for the root user. This is because QEMU runs 'git submodule update' automatically on 'make install'. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: integration: SELinux relabel the QEMU we installed from gitErik Skultety2022-06-091-0/+1
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: eliminate many cross arch CI buildsDaniel P. Berrangé2022-05-313-50/+87
| | | | | | | | | | | | | | | | | | | | | | | | We currently build cross-arch containers for all three Debian releases (10, 11, Sid), and do libvirt builds covering each arch. This is overkill in terms of the number of problems it identifies. The most important aspect of cross arch builds is to find problems with 32-bit builds and problems with big endian builds. With this in mind the cross arch jobs are altered as follows - Debian 10 - build the containers by default - build armv7 (32-bit) & s390x (big endian) - other arch builds manual - Debian 11 / Sid - container builds all optional - arch builds all optional Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: move Ubuntu GCC santizers build to 20.04Daniel P. Berrangé2022-05-312-6/+10
| | | | | | | | | | We currently build on Ubuntu 22.04 twice, for GCC and CLang with santizers turned on. Moving the GCC santizers build to 20.04 lets us cull one of the 22.04 jobs Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: disable native builds on certain distrosDaniel P. Berrangé2022-05-312-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we do native builds on all distros that are covered by the support matrix. This reduces that such that we mostly only run builds on the newest (ie bleeding edge non-released) version and the oldest version. The effect is that cut out builds on the newest release version. This is acceptable, because that version is sandwiched between two versions we do still test, so unlikely to have failures not already identified by other jobs. This has the effect of disabling: - AlmaLinux 8 GCC - still has a CLang build and CentOS 8 Stream also gives coverage - Debian 11 - still has a Debian 10 and Sid build - Alpine 3.15 - still has a Alpine 3.14 and Edge build Ideally Fedora 35 would be disabled too, but we rely on that for the integration tests. The Ubuntu jobs will be handled in the next patch. The containers are still built since this is cheap-ish. The build jobs can also be triggered manually if desired. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: refresh with lcitool manifestDaniel P. Berrangé2022-05-313-1/+235
| | | | | | | | | | | | | | This refreshes the containers bringing in new behaviour when builds/containers are disabled. Instead of deleting the job entirely, the job still exists but is set to be a manual job. It won't affect the pipeline result, but can be triggered by the developer if they wish to test a specific scenario. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Refresh generated filesMartin Kletzander2022-05-271-5/+5
| | | | | | | | Notable changes: * 'lcitool manifest' now generates absolute include paths Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
* ci: Don't mark any Fedora 36 job as optionalAndrea Bolognani2022-05-262-2/+1
| | | | | | | It's a stable distro, so we expect all jobs to succeed. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Move MinGW jobs to Fedora 36Andrea Bolognani2022-05-265-11/+13
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Add Fedora 36Andrea Bolognani2022-05-264-0/+127
| | | | | | | | | The target is intentionally not added to the integration tests at this time, because the corresponding VM template is not yet available on the runner. A later patch will take care of that. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Refresh generated filesAndrea Bolognani2022-05-266-741/+831
| | | | | | | | | | | | | Notable changes: * 'lcitool manifest' now generates GitLab CI rules spread across a bunch of files; * container images are built less frequently for the main repository. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Drop Fedora 34Andrea Bolognani2022-05-264-153/+0
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* docs: Update URL for MinGWAndrea Bolognani2022-05-241-3/+3
| | | | | | | | | The MinGW-w64 project has effectively replaced the original MinGW project, and distributions such as Fedora have been shipping packages based on the former for years now. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* syntax-check: Enforce sc_prohibit_backslash_alignment everywhereAndrea Bolognani2022-05-241-1/+1
| | | | | | | | | | | | | Basically all files in the repository are already passing the check, except for syntax-check.mk itself. Fix that, and stop limiting the files on which the test is performed. These changes have been generated by running $ sed -Ei 's/[ '$'\t'']+\\$/ \\/g' $(git grep -El '[ '$'\t'']+\\$') Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Add a Fedora integration test job utilizing upstream QEMUErik Skultety2022-05-121-0/+16
| | | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Add a new integration job template for the upstream QEMU scenarioErik Skultety2022-05-121-0/+11
| | | | | | | | | | | | YAML anchors don't work with Shell condition structures, so we cannot simply reference the QEMU build template YAML anchor conditionally and hence have everything as part of a single job template. Instead, we have to "subclass" the .integration_tests template and inject the QEMU building bits explicitly. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Introduce a template for upstream QEMU buildErik Skultety2022-05-121-0/+19
| | | | | | | | | | | | This was heavily inspired by QEMU's upstream CI buildtest-template.yml. Rather than referencing QEMU's template directly (which GitLab can do), this patch resorts to hard-coding the build steps ourselves, solely because there's no guarantee QEMU will keep either the template file name or the template name from which the build steps were mostly copied from. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Break off the integration_tests template into more templatesErik Skultety2022-05-121-29/+47
| | | | | | | | | | | | There's quite a lot happening in the .integration_tests template already even without adding upstream QEMU build into the mix. Let's break the template into more pieces which can then reference in the .integration_tests template when putting all the pieces back together using YAML anchors. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Separate the integration job template to a separate fileErik Skultety2022-05-122-52/+54
| | | | | | | | | | Future patches will do more code extraction from the existing template using YAML anchors so it'd be better that the templates would live separately from job definitions. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Move clang/asan/ubsan jobs to Ubuntu 22.04Andrea Bolognani2022-05-062-11/+11
| | | | | | | | Using an updated toolchain means we're likely to catch more issues. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Add Ubuntu 22.04Andrea Bolognani2022-05-063-0/+119
| | | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Refresh configurationAndrea Bolognani2022-05-061-1/+1
| | | | | | | | | Notable changes: * use the most recent point release for FreeBSD 12. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: print stack traces on macOS if any tests failDaniel P. Berrangé2022-04-281-1/+1
| | | | | | | | | | | Mostly the tests should fail cleanly, but sometimes the test might crash or abort. In this case we'll need to know the stack traces in order to debug the problem. Fortunately on the Cirrus CI macOS instances, the crash reporting service is active and saving crashes to the directory ~/Library/Logs/DiagnosticReports/ Reviewed-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: print test suite logs on failure for Cirrus jobsDaniel P. Berrangé2022-04-261-1/+1
| | | | | | | | We don't have access to the 'testlog.txt' file, so we need meson to print the failures for any broken tests directly. Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Drop openSUSE Leap 15.2Andrea Bolognani2022-04-143-123/+0
| | | | | | | It has reached end of life in January 2022. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
* ci: Add openSUSE Leap 15.3Andrea Bolognani2022-04-143-0/+123
| | | | | | | It was released in June 2021. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
* ci: Add Alpine Linux 3.15Andrea Bolognani2022-04-143-0/+98
| | | | | | | It was released in November 2021. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>