Commit graph

95 commits

Author SHA1 Message Date
Peter Hutterer
b925b55634 test: use MESON_TESTTHREADS to determine the number of jobs
meson uses MESON_TESTTHREADS to determine the number of parallel test
jobs. Since our main test suite cannot be run in parallel anyway, use
that same variable in litest to determine how many jobs we should fork
off.

In the CI pipeline, we can use FDO_CI_CONCURRENT to pass that down so we
don't end up running a billion jobs on a test runner.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-08-03 22:14:29 +00:00
José Expósito
44212baaf1 ci: update to GTK 4 when available
Update GTK to version 4 on Fedora, Arch and Alpine Linux.

Not updating Debian and FreeBSD because the package is not available yet
and Ubuntu because it is not available on 20.10.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
2021-08-03 16:52:39 +00:00
José Expósito
a9b334ebb5 debug-gui: pointer locking on Wayland
Use the pointer constraints protocol to lock the pointer on Wayland.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
2021-08-03 16:52:39 +00:00
Peter Hutterer
c21f20cc5a meson.build: disable documentation by default
This does little other than drag in a whole bunch of dependencies. The
libinput documentation is designed to be consumed online, so there's no
need building it on every machine.

We leave the dependencies installed in the images because it's a lot
easier to remove them and test if the build still works than adding them
and dragging in every updated package since we built the image.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-08-03 12:11:09 +10:00
José Expósito
140b4b7853 doc: add common failed pipeline errors
Add a section in the contributing documentation with common pipeline
errors and how to fix them and point to this page when the CI fails.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
2021-07-30 05:21:59 +00:00
Peter Hutterer
355635ad4f gitlab CI: drop dependencies between jobs
None of our jobs rely on the artifacts of a previous job, so let's not
pass those around. Make this part of the default policy and include it
from every job.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-29 15:38:01 +00:00
Peter Hutterer
79707b91c7 gitlab CI: debug the meson_build script
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 12:50:11 +10:00
Peter Hutterer
833e49ce01 gitlab CI: use the ci-templates FreeBSD templates
Replace our cross-compilation for FreeBSD with a proper template.
FreeBSD doesn't do normal containers so we need a bunch of if/else to
skip the container builds.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 12:50:11 +10:00
Peter Hutterer
21824bc6ff gitlab CI: move the SUITES handling to the template where it matters
Should have been part of 9133693b15.

This fixes an issue with calls to meson_build.sh with an otherwise empty
MESON_TEST_ARGS - thanks to the space before $SUITES it would no longer
the zero-string condition in meson_build.sh.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 12:48:56 +10:00
Peter Hutterer
94fc9b2200 gitlab CI: update to latest ci-templates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 09:46:20 +10:00
Peter Hutterer
9133693b15 gitlab CI: split the qemu meson build parts out as separate template
This was part of the test-suite-vm template but to make it easily
re-usable split out the parts that are just about building in a qemu
image from the parts that are specific to running the test suites.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 09:46:17 +10:00
Peter Hutterer
6516374ded gitlab CI: name the qemu tags per distribution
Having only one qemu tag worked only because we only had one
distribution using qemu. If we have multiple of those we just
duplicate/overwrite the variable so let's not do that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-28 08:59:09 +10:00
Peter Hutterer
6aa24d1054 gitlab CI: add a comment to explain how to actually edit the CI
We tell users not to edit it, but don't tell them how to change it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-06-17 16:10:53 +10:00
Peter Hutterer
873a883906 gitlab CI: use FDO_CI_CONCURRENT in our meson build script
Always prefix the ninja args with the FDO_CI_CONCURRENT values (i.e. how many
jobs the runner tells us).

Note that this variable is currently not passed through to the qemu jobs, so
inside the VM we'll still use the ninja default values.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-05-25 11:17:45 +00:00
Peter Hutterer
5dc000323d gitlab CI: add a JUnit XML report for scan-build
Use a scan-build wrapper to generate plist files, then parse those into a
JUnit xml format. This makes the errors appear on the main MR page as opposed
to being hidden in the artifacts somewhere.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-05-12 13:31:42 +10:00
Peter Hutterer
5a6f141bd8 gitlab CI: bump from Fedora 32 to 34
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-05-12 10:23:33 +10:00
Peter Hutterer
354df8bce9 Change various references to the master branch to main
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-04-29 01:31:03 +00:00
Peter Hutterer
72f747f255 gitlab CI: switch to Ubuntu 21.04
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-04-23 01:41:12 +00:00
Peter Hutterer
6a6435ae4b tools: add a tool to print a libinput recording as a table
This makes it easier to visualize changes in various axes or key states that
should not be there, doubly so for long recordings.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-23 13:46:00 +10:00
Peter Hutterer
da5bdd2022 gitlab CI: move the no-libwacom test suite into its own stage
Easier to spot visually in the GUI that way

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-15 16:28:44 +10:00
Peter Hutterer
d0d2994254 gitlab CI: add a job to make sure we're running all test suites
Only needs to run when meson.build or the CI script update

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-12 15:24:15 +10:00
Peter Hutterer
d3115f4875 test: drop the custom group names
The group names are forced by check (they are called suite names there) but
for our test suite they provide very little benefit. Much easier to just
use the filename a test is in as group name.

This removes the pure substring match for --filter-group, it's now fnmatch
only. group names are short enough that the typing isn't an issue and we don't
want to run tests twice (e.g. 'pad' is also in 'touchpad').

This patch caused #574 until it got fixed in d838e3a3a4

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-12 15:24:15 +10:00
Peter Hutterer
8ab2581d20 gitlab CI: make the test suite names a list
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-12 14:31:48 +10:00
Peter Hutterer
3eb428ef56 gitlab CI: run the scan-build analysis jobs in script
after_script ignores any exit status so we can't actually fail the job here

Fixes #573

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-12 07:35:58 +10:00
Peter Hutterer
51da77f9ea gitlab CI: rename the VM stage "test-suite"
A much more sensible name than "vm"

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-11 02:56:49 +00:00
Peter Hutterer
d1f900f764 Create /etc/libinput on install
Users that need to create the local-overrides.quirks are sometimes hesitant to
do so because /etc/libinput doesn't exist by default. Let's create it on
install.

Related #568

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-02-08 04:28:42 +00:00
Peter Hutterer
ff598741a9 tools: add a tool to analyze the finger count from a recording
Given a libinput recording, print the timestamps of any finger changes, i.e.
which slots are currently logically down. For example:

Timestamp | Rel time |     Slots     |
--------------------------------------
 0.000000 |  +0.000s | + |   |   |   |
 0.454631 |  +0.454s |   |   |   |   |
 5.065401 |  +4.610s | + |   |   |   |
 6.140281 |  +1.074s | + | + |   |   |
 7.410377 |  +1.270s |   | + |   |   |
 7.420200 |  +0.009s |   |   |   |   |
11.233108 |  +3.812s | + | + |   |   |
11.850206 |  +0.617s |   |   |   |   |
13.827740 |  +1.977s | + |   |   |   |
14.704027 |  +0.876s | + | + |   |   |
16.050577 |  +1.346s | + |   |   |   |
16.905186 |  +0.854s |   |   |   |   |

This data is available with the per-slot-delta tool but the output here is
more compressed, making it easier to detect stuck fingers. Pressure
thresholds are not currently supported.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-01-29 08:06:53 +10:00
Peter Hutterer
1dbdef8fdb Use python black for all pyhon file formatting
Let's enforce a consistent (and verifiable) style everywhere.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-01-28 21:02:45 +00:00
Peter Hutterer
b43dc88c64 gitlab CI: use Fedora 33
This requires the latest CI templates for the updated mkosi fixes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-01-04 12:02:46 +10:00
Peter Hutterer
ba0aed7b27 gitlab CI: fix flake8 complaints
tools/libinput-measure-fuzz.py:212:15:
 F523 '...'.format(...) has unused arguments at position(s): 1

But the E741 is better turned off in general:
  tools/libinput-measure-fuzz.py:319:29: E741 ambiguous variable name 'l'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-01-04 12:02:46 +10:00
Peter Hutterer
bfa077d2a8 gitlab CI: don't allow VM test failures
The VM runs are much more reliable now and where they do fail, they can be
retriggered.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-12-14 18:57:51 +10:00
Peter Hutterer
bbd1be7a6d gitlab CI: check commits/CI template generation before spinning up containers
If either of those fails, no point in trying to generate containers.
And move the MR check down to the deploy stage where it belongs.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-24 07:05:58 +10:00
Peter Hutterer
60e0995360 gitlab CI: use ci-fairy generate-template --verify
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-24 07:05:58 +10:00
Peter Hutterer
b7df846a8b gitlab CI: use the CI-fairy image
This removes the need to pull a docker image for each of those stages.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-24 07:05:57 +10:00
Peter Hutterer
dd47530932 gitlab CI: add curl to the debian image
The coverity job on debian needs curl.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-16 13:30:27 +10:00
Peter Hutterer
8691b83def gitlab CI: generate the package lists from the config.yaml
The string list is getting too confusing.

This gets rid of the separate packageset for qemu. That packageset only
differed by adding valgrind, we can just keep that in the same list.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 10:51:20 +10:00
Peter Hutterer
8bb34dceeb gitlab CI: update to latest templates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:39:26 +10:00
Peter Hutterer
833b8d2da4 gitlab CI: remove unused custom ubuntu install script
Looks like this has been obsolete since
4df2ac731f where it stopped passing in the
packages.

And a bug caused the template to checked the "version" against "ubuntu", so
the script hasn't actually been included in any job anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:38:28 +10:00
Peter Hutterer
eef14179a2 gitlab CI: update Ubuntu to current distros
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
05df169d2d gitlab CI: rename FREEBSD_PKGS to FREEBSD_PACKAGES for consistency
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
b2dbe19605 gitlab CI: switch the coverity job to Debian stable
coverity doesn't work with gcc 10, it fails with "invalid GNU version
number: 201". F31 is about to be EOL but we can't use to F32 or later.

So let's switch to debian stable instead, that one will stick around for a bit
longer.

Debian packages are the same as the Ubuntu packages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
ed2e791f04 gitlab CI: Fedora only needs git-core, not git
The other lines are just for indentation to match up

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
c23af9e178 gitlab CI: use a template for the various ci-fairy jobs
And switch to python:alpine, an image that is tiny and sufficient for the job
we want.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
ef5919cdab gitlab CI: switch to the vmctl script
See ci-templates commit acda94e139030dc2caa058118956225e55bbec5f, it replaces
vm interactions with vmctl start/stop/exec and sets up an ssh config for the
hostname 'vm'.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-12 09:31:37 +10:00
Peter Hutterer
d7ba7b18d1 gitlab CI: pass MESON_ARGS down to the wayland-web job
Now that we're firing the wayland website generation as trigger, we're
automatically passing down the variables to the pipeline. Let's pass down
something sensible, we already had one issue with our space-separated
'build dir' and let's not require more than absolutely necessary to build
the docs.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-10 22:44:15 +00:00
Peter Hutterer
024162e606 gitlab CI: update the comments
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-03 14:07:54 +10:00
Peter Hutterer
87e37453f4 gitlab CI: update to latest ci-templates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-03 14:07:08 +10:00
Peter Hutterer
3144d3afe5 gitlab CI: remove a now-unused VERSION variable
This became obsolete with FDO_DISTRIBUTION_VERSION being autogenerated by
templates.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-11-03 14:06:55 +10:00
Peter Hutterer
61947b33f6 gitlab CI: trigger the wayland website pipeline directly
See the documentation here:
https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#trigger-a-pipeline-when-an-upstream-project-is-rebuilt

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-10-28 03:20:06 +00:00
Peter Hutterer
442b7b4e34 gitlab CI: add git depth to the coverity job and save the artifacts
A default git depth of 1 means git describe won't work, let's set it to
something high enough that we should always have at least one tag in the
history.

And save the artifacts after the coverity compilation, where the submission
fails for whatever reason we can just resubmit those manually without having
to rebuild the whole image locally.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-10-07 07:27:13 +10:00