summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* ci: pass --break-system-packages on Debian SidDaniel P. Berrangé2023-04-191-2/+2
| | | | | | | | Debian Sid python packages block users from installing packages using pip unless using a venv. A venv has no benefit when we are running in a throwaway container which has no need for software upgrades. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Expose built RPMs as artifactsv8.9.0Peter Krempa2022-10-131-2/+10
| | | | | | | | | | | Expose the artifacts from the centos-stream-8/9 and fedora 35/36 jobs so that the main libvirt integration testing project can consume them. The new libvirt sub-rpm containing a python helper to access QMP directly requires python environment which we didn't yet install in the integration job. Signed-off-by: Peter Krempa <pkrempa@redhat.com>
* ci: Fix the stage of the api-coverage jobErik Skultety2022-10-031-2/+2
| | | | | | | | | | | | | The 'extends' stanza supports a list, however there's a merge algorithm in place where a subsequent list entry overwrites all conflicting settings from the previous one - which is exactly what happened here as the gitlab-build-{local,prebuilt}-env job template overwrote api-coverage's stage to 'builds' whereas the original was 'sanity_checks'. Fixes: 4733e2a2d13cb9a85127ba17c04cc29278b31e89 Signed-off-by: Erik Skultety <eskultet@redhat.com>
* ci: refresh with latest lcitool manifestDaniel P. Berrangé2022-09-301-17/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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, 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. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: switch to using 'pip' for package installationv8.2.0Daniel P. Berrangé2022-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The distutils/setuptools 'install' command is deprecated in favour of 'pip', and with recent versiosn, using it will create a bad install that triggers a traceback on all future use of setuptools: Traceback (most recent call last): File "/builds/berrange/libvirt-python/setup.py", line 328, in <module> setup(name = 'libvirt-python', File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 154, in setup _install_setup_requires(attrs) File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 143, in _install_setup_requires dist = MinimalDistribution(attrs) File "/usr/lib/python3.10/site-packages/setuptools/__init__.py", line 135, in __init__ super().__init__(filtered) File "/usr/lib/python3.10/site-packages/setuptools/dist.py", line 456, in __init__ for ep in metadata.entry_points(group='distutils.setup_keywords'): File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 1009, in entry_points return SelectableGroups.load(eps).select(**params) File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 459, in load ordered = sorted(eps, key=by_group) File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 1006, in <genexpr> eps = itertools.chain.from_iterable( File "/usr/lib64/python3.10/importlib/metadata/_itertools.py", line 16, in unique_everseen k = key(element) File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 941, in _normalized_name return self._name_from_stem(stem) or super()._normalized_name File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 622, in _normalized_name return Prepared.normalize(self.name) File "/usr/lib64/python3.10/importlib/metadata/__init__.py", line 871, in normalize return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_') File "/usr/lib64/python3.10/re.py", line 209, in sub return _compile(pattern, flags).sub(repl, string, count) This is certainly a bug in distutils/setuptools, but given the 'install' command is deprecated, instead of waiting for a fix, just switch to the recommend 'pip install .' command. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: refresh from lcitool manifestDaniel P. Berrangé2022-03-281-2/+2
| | | | | | This drops the CentOS 8 job and replaces Fedora 33 with 35. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: re-generate containers/gitlab config from manifestDaniel P. Berrangé2021-09-021-188/+6
| | | | | | | This uses the command "lcitool manifest ci/manifest.yml" to re-generate all existing dockerfiles and gitlab CI config. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: use custom docker:dind imagev7.6.0Daniel P. Berrangé2021-07-271-1/+2
| | | | | | | | | | | The current docker:dind container has broken default seccomp filter that results in clone3 being blocked, which in turn breaks Fedora 35 rawhide. This custom image has a workaround that causes the seccomp filter to return ENOSYS for clone3 instad of EPERM, thus triggering glibc to fallback to clone correctly. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: don't set RPM variable on container jobDaniel P. Berrangé2021-05-251-1/+0
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: add OpenSUSE Tumbleweed container and buildDaniel P. Berrangé2021-05-251-0/+13
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: introduce Fedora 34 container and buildDaniel P. Berrangé2021-05-251-0/+12
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: rename opensuse-152 to opensuse-leap-152Daniel P. Berrangé2021-05-251-5/+5
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: rename centos-stream to centos-stream-8Daniel P. Berrangé2021-05-251-5/+5
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: drop Fedora 32 container and buildDaniel P. Berrangé2021-05-251-12/+0
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: drop centos-7 container and buildDaniel P. Berrangé2021-05-251-12/+0
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* Don't run sanity checks by defaultDaniel P. Berrangé2021-04-091-8/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The sanity check scripts verify that the binding covers all APIs in the libvirt library/headers being built against. This is primarily there for libvirt maintainers to identify when there are gaps in API coverage. This is not something downstream consumers of libvirt-python should be running themselves, so we shouldn't added it to tests by default. In addition if people are working on branches or submitting merge requests for python changes, we shouldn't block their work for failed API coverage sanity tests, if the python binding otherwise builds fine and passes regular unit tests. Thus, we introduce a new gitlab job "api-coverage" with some conditions: - If pushing to a branch, the job is treated as non-fatal - For regular scheduled builds, it is mandatory - Don't run in any other scenarios This job uses the artifacts from the centos-8-git-build job and re-runs the test suite, requesting the sanity tests to be run too. This will achieve the result of letting us see missing API coverage in nightly builds, without blocking other contributions. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Move dco job to sanity_checks stageAndrea Bolognani2021-04-071-2/+3
| | | | | | | | If the DCO check fails we still want the pipeline to fail, but that doesn't mean there's no value in running the other jobs to get a better picture. Signed-off-by: Andrea Bolognani <abologna@redhat.com>
* ci: Use 'extends' GitLab CI featureAndrea Bolognani2021-04-071-26/+26
| | | | | | | This is the recommended way to use templates in job definitions. Signed-off-by: Andrea Bolognani <abologna@redhat.com>
* ci: drop openSUSE leap 15.1 in favor of 15.2Ján Tomko2021-04-061-5/+5
| | | | Signed-off-by: Ján Tomko <jtomko@redhat.com>
* gitlab: replace "libvirt-" prefix with "ci-" in dockerfilesDaniel P. Berrangé2020-12-011-1/+1
| | | | | | This makes the dockerfile name match the output container name Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: re-generate container images from lcitoolDaniel P. Berrangé2020-12-011-10/+10
| | | | | | This introduces Fedora 33 and removes some redundant packages. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: move dockerfiles into ci/containers sub-directoryDaniel P. Berrangé2020-12-011-1/+1
| | | | | | This brings the repo into alignment with the main libvirt.git practice. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* Pass -Werror when building extensionDaniel P. Berrangé2020-11-121-0/+2
| | | | | | | This ensures we pick up warnings from new python headers or other problems. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: optimize CI job dependenciesv6.9.0Daniel P. Berrangé2020-10-061-0/+25
| | | | | | Allow more parallelization by giving explicit dependencies between jobs. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: refresh dockerfiles for changed libvirt build systemDaniel P. Berrangé2020-08-041-10/+10
| | | | | | | Libvirt changed from autotools to meson. All the containers need refreshing and the CI recipes updated. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* ci: Test installationv6.4.0Andrea Bolognani2020-05-221-0/+2
| | | | Signed-off-by: Andrea Bolognani <abologna@redhat.com>
* ci: Make job skips more flexibleAndrea Bolognani2020-05-221-2/+4
| | | | | | | | Instead of hardcoding the names of the targets for which certain steps should be skipped, use a separate variable to store that information. Signed-off-by: Andrea Bolognani <abologna@redhat.com>
* gitlab: add testing of the rpmbuild processDaniel P. Berrangé2020-05-141-0/+4
| | | | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: fix typo s/perl/python/ in docker cached image nameDaniel P. Berrangé2020-05-011-1/+1
| | | | | Reported-by: Pavel Hrdina <phrdina@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: introduce CI jobs testing git master & distro libvirtDaniel P. Berrangé2020-05-011-0/+169
| | | | | | | | | | | | | | | | The python build needs to validate two axis - A variety of libvirt versions - A variety of python versions We get coverage for both these axis by running a build against the distro provided libvirt packages. All that is then missing is a build against the latest libvirt git master, which only needs to be run on a single distro, for which CentOS 8 is picked as a stable long life base. Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* gitlab: add CI job for validating DCO signoffDaniel P. Berrangé2020-04-301-0/+16
This job uses the shared "check-dco" image to validate that all commits on a branch in a developer's repo fork have a suitable Signed-off-by statement present. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>