hello folks,
I've reworked the driver CI pipelines for the xf86-* driver repos and added a canonical CI script set which works the same for all drivers and running builds various targets for different xserver versions at once. Right now we have a wild mix of inconsistent ways to build the drivers: different distros, some building against older xservers, some only against master, different xserver build configs, different base images, different compilers, etc, etc. And we've also been lacking an easy and consistent way to run the build locally (outside gitlab) In order to clean that up and having a consistent platform, I've went this way: * a generic include and few scripts handling all the magic: * each driver just needs a .gitlab-ci.yaml for few settings and including the main machinery * the heavy lifting of the actual build process (including image setup) is done by few scripts, that can also be called directly (eg. in a local VM) * matrix of several xserver versions and compilers (gcc & clang) * unsupported targets (debian or freebsd) can be disabled by a variable caveats: a) xserver 1.18 and 1.19 currently don't build on Debian, so I had to skip them, until we've fixed those old maintenance branches :( b) right now each driver repo needs to have it's own copy of the generic pipeline/scripts - we'll yet have to find a suitable place to host it (and when doing so, need some extra git clone, so the scripts are actually available - gitlab templates directive only fetches the individual yaml files, not the whole repo) c) wsfb is excluded, since we don't have NetBSD on f.d.o yet. In this example (applying to vast majority of drivers), you'll see how damn small the individual pipeline yaml now has become: https://gitlab.freedesktop.org/metux/xf86-video-r128/-/blob/wip/ci/.gitlab-ci.yml This one is a driver that won't work on Linux (thus currently just FreeBSD): https://gitlab.freedesktop.org/metux/xf86-input-mouse/-/blob/wip/ci/.gitlab-ci.yml And here's the only more specific case: geode driver really isn't going to compile on 64bit - these SoCs are exclusively 32bit, so it takes a little bit black magic to skip the debian/i386 build: (been too lazy for adding extra knobs for this one case only) https://gitlab.freedesktop.org/metux/xf86-video-geode/-/blob/wip/ci/.gitlab-ci.yml Current target platforms are: Debian Bullseye (i386 and amd64) and FreeBSD 14 (amd64). Adding more should be quite straightforward, if desired. I'm now in process of preparing MRs. Some drivers yet need some little fixes to be merged yet (trying not to do duplicate submissions) have fun, --mtx -- --- Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren GPG/PGP-Schlüssel zu. --- Enrico Weigelt, metux IT consult Free software and Linux embedded engineering i...@metux.net -- +49-151-27565287