summaryrefslogtreecommitdiff
path: root/ci
Commit message (Collapse)AuthorAgeFilesLines
* ci: integration: Flip QEMU upstream integration tests to Fedora 38Erik Skultety2023-05-101-12/+12
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: Flip mingw jobs from Fedora 37 to Fedora 38Erik Skultety2023-05-107-23/+23
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: Drop Fedora 36 targetErik Skultety2023-05-106-285/+0
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: Add Fedora 38 targetErik Skultety2023-05-106-0/+285
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
* ci: Regenerate filesMichal Privoznik2023-04-277-17/+10
| | | | | | | | | This removes minor version number from OpenSUSE LEAP target names and on CentOS Stream 9 installs flake8 from repositories, instead of pip. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
* ci: Regenerate filesAndrea Bolognani2023-04-0440-82/+83
| | | | | | | This unbreaks the various $CROSS-$NAME-local-env jobs. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* Revert "ci: Disable optimization on macos-12"Martin Kletzander2023-03-242-3/+0
| | | | | | | | | | | | | | | This reverts commit 1f76b5365ec78b1e9a36038db8e13ec0025bbe7a. There were two issues with this commit. First is the missing propagation of CFLAGS into the build environment and second is the fact that this is not enough to disable the check for -fsemantic-interposition. The proper fix would require setting MESON_OPTS or similar and also add the propagation of such variable into the cirrus builds etc., but at this point I burned so much time on this trivial piece of rubbish that I think it's easier to just wait for macos to gain a newer clang =D Signed-off-by: Martin Kletzander <mkletzan@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Disable optimization on macos-12Martin Kletzander2023-03-242-0/+3
| | | | | | | This enables our CI to run tests on on macos-12 after commit 7944700b4037. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
* ci: Refresh CI files with current lcitoolMartin Kletzander2023-03-241-1/+1
| | | | | | | | This updates to FreeBSD 12.4 which has clang that supports -fsemantic-interposition, plus of course updates the system. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Drop EOL OpenSUSE 15.3Peter Krempa2023-03-235-233/+0
| | | | | | | | | | | | The '15.3' version is EOL now: https://get.opensuse.org/leap/15.3/ Also switch the 'codestyle' job to the appropriate container image. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
* ci: Add OpenSUSE leap 15.4 jobPeter Krempa2023-03-235-0/+226
| | | | | | | | As a precursor to dropping the EOL OpenSUSE 15.3 job add first the definitions for the replacement version. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
* ci: Regenerate gitlab CI config with latest lcitoolPeter Krempa2023-03-013-2/+40
| | | | | | | | | | | The latest 'lcitool' now generates the CI config in a way which allows users to kick off pipelines with the upstream projects container environment rather than building a throwaway updated environment each time and enables a gitlab feature to time individual script lines. Pull it into libvirt. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
* ci: Regenerate gitlab config with latest lcitoolPeter Krempa2023-03-012-2/+2
| | | | | | | | The 'cirrus-run' and 'check-dco' containers are now exported as ':latest' instead of ':master'. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Test with latest Avocado againErik Skultety2023-02-081-1/+1
| | | | | | | | Test with the following fix: https://github.com/avocado-framework/avocado/pull/5567/commits Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: integration: Set an expiration on logs artifactsErik Skultety2023-01-121-0/+1
| | | | | | | | | | | | | | The default expiry time is 30 days. Since the RPM artifacts coming from the previous pipeline stages are set to expire in 1 day we can set the failed integration job log artifacts to the same value. The sentiment here is that if an integration job legitimately failed (i.e. not with an infrastructure failure) unless it was fixed in the meantime it will fail the next day with the scheduled pipeline again, meaning, that even if the older log artifacts are removed, they'll be immediately replaced with fresh ones. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Refresh and add Fedora 37 targetErik Skultety2023-01-0911-80/+78
| | | | | Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
* 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>