This is copied from libinput's CI but as one large change rather than
cherry-picking the process on how to get here. meson-build.sh is synched
with libinput's version - it is a more generic version anyway.
With this change we no longer require separate images for the qemu runs,
our default image is qemu-capable and can be run in qemu via
boot2container (b2c).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Only use the LIBEVDEV_SKIP_ROOT_TESTS env var in autotools where we need
it, in meson we can use meson to control which tests we (don't) want to
run.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Unlike autotools distcheck which ensures we didn't forget to add
anything to the makefiles, ninja dist just zips up the git repo.
It does run the tests though but without suite selection which is a
problem for us here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Use the new needs-uinput suite specifier for the meson build job, and
use --no-tests for ninja dist in the autotools build job.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
In the no-check:meson job, the ninja arg was "dist" so the test would be
run as part of that anyway (and skipped, since we didn't have check).
In the no-doxygen-check:meson job, the ninja arg was zero so the test
would be skipped but since we don't have check we might as well just
run it as empty test suite.
And the same applies to the scan-build job, running the test shouldn't
hurt here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Required by the debian sid containers, otherwise we fail because of a
missing /etc/apt/sources.list file.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
No big point building for Centos 7 anywmore, and Centos 8 is now Centos
Stream only which needs fixing in the CI templates first.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Generate the snippet for whichever is the last version in the list for the
want_qemu tag.
And move the want_qemu tag up so it's more obvious in the config file.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This requires latest CI templates for the mkosi changes. Since the start_vm.sh
script is now gone, switch to using vmctl instead.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We still require Fedora for the various jobs with custom autotools/meson
configurations. But we might as well make it dependent on the config file
entries only than hardcoding it.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This gives the developer enough time to file an MR after pushing a branch.
Having this run in the first stage means we get false positives because no MR
has been filed yet when the job is run.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
ci-templates now has a new tool ci-fairy that replaces our jinja generation
script with something (eventually) unified across project repositories. Let's
move the files to the expected locations .gitlab-ci/config.yml and
.gitlab-ci/ci.template.
ci-fairy also has a wrapper to delete images, let's start using that.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Let's not duplicate the functionality, use the upstream templates because
they'll actually see improvements over time.
Define two jobs, one that is the ifnot-exists job and one that is the normal
container-build job. The second one only runs on schedules.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
gitlab doesn't support double-nested variables so we can assume that these
variables don't need further expansion
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This is a test commit only to speed things up when testing the container-clean
phase. In the real instance, we don't want to remove our containers until the
test suite successfully completes on the new container.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Rather than raw curl requests to the API, use a python script using the gitlab
python package to access everything. This makes things a bit more readable.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
These templates get rid of the various distribution-specific naming and
instead default to the namespaced FDO_DISTRIBUTION_<foo> for whatever value we
need. So FEDORA_RPMS, DEBIAN_DEBS etc. becomes FDO_DISTRIBUTION_PACKAGES for
example.
By necessity this is one large commit. gitlab does not allow nested variable
expansion, so the previous approach of global variables didn't work.
Specifically, we'd end up with a template in this form:
variables:
FEDORA_TAG: 12345
.base_template:
variables:
DISTRO_IMAGE: $DISTRO_TAG
.fedora:
variables:
$DISTRO_TAG: $FEDORA_TAG
But the actual DISTRO_IMAGE variable would be the literal string $FEDORA_TAG,
not the value of that variable. So all of it needed to be reworked.
Specifically:
- the packages to install moved to the config yaml file
- the distribution tag is now in the config yaml file
- all distributions now share the same tag (because lazyness)
- there are .fedora:30, .debian:stable, etc. templates now with the variables
defined as needed, jobs will extends those templates as they need those
distributions
- qemu-prep jobs are now generated too (based on the config yaml file)
Overall, it ends up cleaner despite the mess in this patch.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Due to how pytest is used, we don't get the actual errors printed in the
commandline log if this job fails. This doesn't matter in merge requests where
the results are displayed nicely but where there's no merge request we can't
get this info out at all. So let's simply store the xml file for an easy
check.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This is a leftover from ci-templates where the name of a distribution didn't
necessarily match the image (arch vs archlinux) and is no longer needed.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>