summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
AgeCommit message (Collapse)Author
2022-04-26gitlab-CI: Temporarily disable armhf and arm64 selfchecksPetri Latvala
gitlab runners have sporadic trouble executing the arm binaries. The arm testing needs to be converted to be run on native arm hardware instead of through qemu. Compilation for armhf and arm64 are kept so they don't regress. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arek@hiler.eu> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-08-11gitlab-ci: Try to avoid runners that jamPetri Latvala
For a yet unknown reason, some gitlab runners leave qemu-user processes in 'D' state. Try to avoid those by using runners that are known to get through the testing fine. Currently that would be the "gstreamer"-tagged runners. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arek@hiler.eu> Acked-by: Daniel Stone <daniels@collabora.com> #irc Acked-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> #irc
2021-07-29ci: Use FDO_CI_CONCURRENT to limit build/test concurrencyDaniel Stone
${FDO_CI_CONCURRENT} is set to an appropriate concurrency on our shared runners. Using all available CPUs will just DoS the world and would explain a lot about the timeouts. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-04-06.gitlab-ci: Don't test AutotoolsArkadiusz Hiler
Signed-off-by: Arkadiusz Hiler <arek@hiler.eu> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Petri Latvala <petri.latvala@intel.com>
2021-03-26lib: Introduce the igt_nouveau libraryLyude Paul
This introduces the igt_nouveau library, which enables support for tiling formats on nouveau, along with accelerated clears for allocated bos in VRAM using the dma-copy engine present on Nvidia hardware since Tesla. Typically the latter would be handled by the kernel automatically, which is the long-term plan for nouveau, but since the kernel doesn't yet support that we implement this in igt in order to fulfill the expectation that most of igt has in which newly allocated fbs are expected to be zero-filled by default. The dma-copy engine is capable of fast blitting, and is also able to perform tiling/untiling at the same time. This is worth mentioning because unlike many of the other drivers supported in igt, we go out of our way to avoid using mmap() in order to perform CPU rendering wherever possible. Instead of mmap()ing an fb that we want to draw to on the CPU (whether it be for converting formats, or just normal rendering), we instead use dma-copy to blit linear/tiled fbs over to linear system memory which we mmap() instead. This is primarily because while mmap() is typically painfully slow for vram, it's even slower on nouveau due to the current lack of dynamic reclocking in our driver. Furthermore, using the dma-copy engine for copying things over to system ram is also dramatically faster than using igt's memcpy wc helpers even when no tiling is involved. Such speed improvements are both quite nice, but also very necessary for certain tests like kms_plane that are rather sensitive when it comes to slow rendering with drivers. This doesn't mean we won't want to provide a way of using mmap() for rendering in the future however, as at least basic testing of mmap() is certainly something we eventually want for nouveau. However, I think the best way for us to do this in the future will be to adapt the igt_draw API to work with nouveau so we can explicitly request using mmap() in tests which need it. Finally, this code also adds a hard dependency on libdrm support for nouveau tests. The main reason for this is currently there are no real applications that use nouveau's ioctls directly (mesa for instance, uses libdrm as well) and also that nouveau's ioctls are currently a bit complicated to use by hand. This will likely be temporary however, as Ben Skeggs is planning on revamping a lot of nouveau's APIs to simplify them and make libdrm support for nouveau obsolete in the future. Note that we take care to make sure that users can still disable libdrm support for nouveau if needed, with the only caveat being that any tests using igt_nouveau will be disabled, along with any tiling support for nvidia-specific tiling formats. This should enable igt tests which test tiling formats to run on nouveau, and fix some seemingly random test failures as a result of not having zero-filled buffers in a few other tests like kms_cursor_crc. Changes since v1: * Remove leftover rebase detritus in drm_fourcc.h Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@mupuf.org> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Jeremy Cline <jcline@redhat.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2020-09-30tests: Add nouveau-crc testsLyude Paul
We're finally getting CRC support in nouveau, so let's start testing this in igt as well! While the normal CRC capture tests are nice, there's a number of Nvidia-specific hardware characteristics that we need to test as well. The most important one is known as a "notifier context flip". Basically, Nvidia GPUs store generated CRCs in an allocated memory region, referred to as the notifier context, that the driver programs itself. Strangely, this region can only hold a limited number of CRC entries, and once it runs out of available entries the hardware simply sets an overrun bit and stops writing any new CRC entries. Since igt-gpu-tools doesn't really have an expectation of only being able to grab a limited number of CRCs, we work around this in nouveau by allocating two separate CRC notifier regions each time we start capturing CRCs, and then flip between them whenever we get close to filling our currently programmed notifier context. While this keeps the number of CRC entries we lose to an absolute minimum, we are guaranteed to lose exactly one CRC entry between context flips. Thus, we add some tests to ensure that nouveau handles these flips correctly (pipe-[A-F]-ctx-flip-detection), and that igt itself is also able to handle them correctly (pipe-[A-F]-ctx-flip-skip-current-frame). Since these tests use a debugfs interface to manually control the notifier context flip threshold, we also add one test to ensure that any flip thresholds we set are cleared after a single CRC capture (ctx-flip-threshold-reset-after-capture). In addition, we also add some simple tests to test Nvidia-specific CRC sources. Changes since v5: * Fix typo Changes since v4: * Don't clear the currently set display pipe at the end of each iteration of pipe tests, otherwise we'll accidentally leave ourselves with no configured CRTCs when the test exits. Instead clear it at the start of each iteration of pipe tests but only if we just finished testing a different pipe. * Get rid of outdated comment about test_ctx_flip_detection() being limited to a single pipe * Clarify comments describing guarding against CRC collisions in test_ctx_flip_detection() * Make a small doc blurb for test_ctx_flip_detection(), it's a rather unusual and nvidia-specific behavior * Mention in test_ctx_flip_detection() that we also explicitly check that we've skipped -exactly- one frame. tl;dr more then one frame is too slow, less then one frame means a context flip just didn't happen when it should have. * Also check that the flip threshold we set in test_ctx_flip_threshold_reset_after_capture() isn't ignored by the driver * s/(create|destroy)_colors()/\1_crc_colors/g Changes since v3: * Update .gitlab-ci.yml to make nouveau exempt from the test-list-diff test, since all the cool kids are doing it and we don't care about autotools for nouveau Changes since v2: * Fix missing include in tests/nouveau_crc.c, this should fix builds for aarch64 Changes since v1: * Fix copyright year in nouveau_crc.c Reviewed-by: Jeremy Cline <jcline@redhat.com> Signed-off-by: Lyude Paul <lyude@redhat.com>
2020-06-17gitlab-ci: Verify blacklist files with verify-blacklist.shPetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-01-16.gitlab-ci: Retry `ninja test` 2 times in case of failuresArkadiusz Hiler
Freedesktop CI/CD runners are shared machines with a lot of cores and they accept many parallel jobs coming from multiple projects. There are no resources guarantees, which leads to the sporadic slowness. This makes our `ninja test` fail in extreme cases. We have already tried to bump the timeout limit for the slower tests in e941638ce652 ("runner/tests: Increase the timeout by 10x") which helped a bit, but we still fail from time to time. As an extra mitigation let's make the CI do 2 retries (= total of 3 attempts) before finally failing the whole pipeline. Cc: Petri Latvala <petri.latvala@intel.com> Issue: https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/197 Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2019-12-04.gitlab-ci: Revert to older buildahArkadiusz Hiler
Use buildah 2019-08-13.0 for our container building needs as 2019-12-02 seems to break building through podman which results in: systemd cgroup flag passed, but systemd support for managing cgroups is not available Reported-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Tested-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-12-03.gitlab-ci: Use fixed version of image builder containerArkadiusz Hiler
So we don't have unexpected version switches that may change/break tools. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-11-08.gitlab-ci: Try -j 1 when build is failing to get the error messagesArkadiusz Hiler
So when we start sending emails about those failures including `| tail -n 20` will actually make sense. v2: make -j $(nproc) by default (Petri) Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-10-30Dockerfile: Use Fedora 31Arkadiusz Hiler
Update to the newest version. Python 3 is now the default one, so we can drop the suffix from pip invocation and we have to install it explicitly. Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-09-04.gitlab-ci: Produce a list of undocumented testsArkadiusz Hiler
We have a requirement that all new tests should be documented using igt_describe() & family since 2f273018ac42 ("CONTRIBUTING: Rework a bit and update"). Let's start actually enforcing that by having this as a part of the CI. For consumption by: https://gitlab.freedesktop.org/gfx-ci/i915-infra/merge_requests/55 Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-09-03.gitlab-ci: Use true --prefixArkadiusz Hiler
We have to use the final location of IGT for --prefix as some of the binaries use that for asset lookup (e.g. register definitions that end up in $PREFIX/share/). To install it under a local directory during the early build steps it's better to use $DESTDIR. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-09-03.gitlab-ci: Don't pull images until they are neededArkadiusz Hiler
We were pulling and tagging images locally ahead of time just in case the next build may need it (i.e. debian-minimal for the fully featured debian). Instead of doing that we can specify the registry in Dockerfile's FROM cluse, so the image is pulled only when we are need it. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-09-03.gitlab-ci: Switch to podman/buildah/skopeoArkadiusz Hiler
The current setup uses docker-inside-docker setup which seems to fail quite often: WARNING: Service runner-HnMPegeT-project-3185-concurrent-0-docker-0 probably didn't start properly. Using docker image XYZ for docker:stable ... ERROR: Job failed (system failure): Error response from daemon: No such container: XYZ (executor_docker.go:743:0s) Switching over to buildah (invoked via podman - docker's drop-in replacement) everything will happen locally without the need to engage any daemons, which should make the build more reliable. We force using docker format for the containers as only the very latest docker can understand OCI and it does not have widespread adoption yet. Buildah can also use chroot for isolation which simplifies network handling for nested containers and have a potential of being a tad bit faster. To query remotes and manage remote tags we can use skopeo, which saves us from pulling full images from the remote without an actual need. Fixes: https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/187 Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-09-03.gitalb-ci: Use only the necessary tagsArkadiusz Hiler
Tag build-* images only with dockerfile-$FILE_SHA1 for changes detection and commit-$COMMIT_SHA1, so we know which set of images we have to use for any given commit. The igt container needs only ref (e.g. master) and commit-$COMMIT_SHA1 tags, as the dockerfile-$FILE_SHA1 one is irrelevant - we build build every time anyway. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-09-03Dockerfile: Make sure that we use correct base imageArkadiusz Hiler
Correct one = the one tagged with current commit, so in case of parallel pipelines we don't take the wrong "latest". Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-08-29gitlab-ci: introduce containers with IGT insideOleg Vasilev
Currently, the containers are used only to build IGT. We also want to have an option to run IGT inside a container. For this, new build stage is added. v2: help touch-ups (Arek) Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
2019-08-29gitlab-ci: use images tagged with git ref instead of latestOleg Vasilev
Since different images can be present at the same time, it is better to always use the one built for this particular git reference. V3: - Change $CI_COMMIT_REF_NAME to commit-$CI_COMMIT_SHA Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-08-29gitlab-ci: rebuild images only on Dockerfile changesOleg Vasilev
Base images rarely change, there is not much sense in rebuilding it on every commit. GitLab already has mechanism for detecting such changes. However, it is only able to prevent rebuilding whenever there is no changes within the same ref. Since in our CI system, git tag is created on every series, the mechanism doesn't work. One possible way to workaround that is to compute a checksum of a Dockerfile, and rebuilding only if there was no image built with the same checksum. V2: - Rename gitlab-ci to .gitlab-ci (Arek) - Add commit-$CI_COMMIT_SHA Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
2019-08-29gitlab-ci: rename DockerfilesOleg Vasilev
Dockerfile.build-* is consistent with build-* naming. Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
2019-08-29gitlab-ci: rename igt-* container to build-*Oleg Vasilev
igt-* better suits for containers which contain IGT inside, while build-* is better for containers which are used to build IGT. Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
2019-08-29gitlab-ci: move containers section to the topOleg Vasilev
No functional changes. This order is consistent with the order of execution stages. Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
2019-07-16build: rename Meson optionsSimon Ser
Meson emits a warning because we use options beginning with "build_": DEPRECATION: Option uses prefix "build_", which is reserved for Meson. This will become an error in the future. Rename our options so that we don't use the Meson-reserved prefix. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-06-28gitlab-ci: add tests for MIPSGuillaume Tucker
Use the libatomic1:mips package only in the Debian Stretch Docker image for MIPS and add Gitlab CI step to run tests on MIPS. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com> Fixes: 439a9f5d615f ("gitlab-ci: add build for MIPS") Reviewed-by: Simon Ser <simon.ser@intel.com>
2019-06-27gitlab-ci: add build for MIPSGuillaume Tucker
Add Docker image and Gitlab CI steps to run builds for the MIPS architecture using Debian Stretch with backports. Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com> Reviewed-by: Simon Ser <simon.ser@intel.com>
2019-06-20gitlab-CI: Do a build-test without any optional dependencies installedPetri Latvala
The meson command line has -Dbuild_tests=disabled -Dwith_libdrm="" because those aren't trivial to make automatic. Plain libdrm is also required, but the libdrm_vendor ones are all optional so for now those are just explicitly disabled. Otherwise this tests that the automated machinery is able to figure out what can be built. v2 (Simon): Base the debian docker image on the debian-minimal image v3: Make the empty argument to with_libdrm more explicit and apparent (Arek) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Simon Ser <simon.ser@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-05-23meson: Start using 'feature' optionsArkadiusz Hiler
Meson 0.47 comes with a new type of option called 'feature' so instead of: type : 'combo', value : 'auto', choices : ['auto', 'true', 'false'], We can: type : 'feature', The main difference is that the feature takes auto, enabled and disabled instead of auto, true and false. get_option() on a feature returns opaque object that can be passed as a 'required' argument of a dependency. Auto is equivalent to 'required : false', enabled is equivalent to 'required : true' and disabled introduces new behavior forcing the dependency to be considered not found. This allows us to streamline a lot of logic regarding optional IGT features. This patch bumps required meson version to 0.47.0 Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Simon Ser <simon.ser@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-05-13panfrost: Don't check for automake supportTomeu Vizoso
Only the meson build supports Panfrost. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2019-05-09ci: remove audio testSimon Ser
Audio tests have been removed and replaced by Chamelium tests. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-05-02ci: build with ClangSimon Ser
This adds a build and test step with Clang on Fedora. Hopefully this can help keeping Clang builds healthy. Signed-off-by: Simon Ser <simon.ser@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-05-02gitlab-ci: Make pages job manualArkadiusz Hiler
To stop sending those pesky failure emails, that condition people to ignore anything sent from gitlab-ci. Now we will have to click the button manually, whenever we want to bump the docs. Cc: Petri Latvala <petri.latvala@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Bugzilla: https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/46 Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-02-18gitlab-ci: Add 'ninja test' step for armhfArkadiusz Hiler
... for completeness. Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-02-13gitlab-CI: add armhfTomi Valkeinen
Add CI for armhf environment. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-01-29automake: Remove VC4/V3D build supportDaniel Vetter
Eric is using meson nowadays. v2: Fix up the test filter, meson lists now contain more than in the automake lists. Cc: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net> Acked-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-12-10gitlab-CI: Force a UTF-8 localDaniel Vetter
python is brittle otherwise and loves to just blow up. Especially when you have commits with non-ASCII characters, which gitlab CI injects into the docker env. Strangely we've only seen this go boom on the ninja test target in the arm64 cross-compile. For paranoia roll it out everywhere. v2: gitlab-ci has global variables (Petri) Cc: Petri Latvala <petri.latvala@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-12-05gitlab-ci: Always set PKG_CONFIG_PATHDaniel Vetter
meson gets grumpy if that changes between invocations. I'm not entirely clear on why this happens with the interim runner from gnome folks, but it does. We do still run the exact same image, with the exact same meson version. But someone the old runner didn't complain, while the new one does. Note that the jobs still fail because the interim runner is dead slow (10x-100x slower to run the library tests) and times out after 30s on tests that take 1s max. Acked-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-11-29gitlab-CI: Keep build artifacts when arm64-test failsDaniel Vetter
There's something very funky going on with the occasional commit consistently failing, e.g. https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/jobs/51208 We need to catch it to understand what happens. v2: Also dump the environment (Petri) Cc: Petri Latvala <petri.latvala@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-11-27gitlab-CI: Enable arm64 test targetDaniel Vetter
Our gitlab no supports binfmt-misc running of forgein binaries: https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/91 Only thing missing is that we also need to install qemu-user-static, since binfmt-misc wants to run that binary from our namespace. Big kudos to Daniel for setting this up. Example run on my stuff branch: https://gitlab.freedesktop.org/danvet/igt-gpu-tools/-/jobs/50307 Cc: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Sean Paul <sean@poorly.run> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-11-21gitlab-ci: Depend docker images jobs on .gitlab-ci.yaml tooDaniel Vetter
Otherwise it's really hard to get these jobs to run when you need them too because you changed something with the build instructions. Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-10-31gitlab-ci: arm64 cross compilingDaniel Vetter
First I tried to build in a full sysroot, but I didn't figure out why ld never found the libraries (this was on fedora, which might have been part of the problem - if you just need a toolchain for kernel corss-building fedora is perfectly fine). Then I tried using debian's multiarch stuff, which worked a lot better, except there's some minor gotchas: - some libraries conflict and can't be multi-arch installed - some libraries are buggy and cause conflicts when installing - pkgconfig and ld get confused with some other libraries and pick the first one they find (i.e. the x86_64 one, not the arm64 one). That means we need a new docker image with just the cross libaries installed as -dev packages, and none of the native ones. Next up I tried to run the tests. Meson has really nice support for an exe wrapper, and qemu happily runs arm64 on x86_64. With that I managed to run some tests successfully (it's not even that slow!). But most are run through a script, and the script doesn't know about the exe wrapper and hence fails miserably. I discussed this a bit with Dylan and he filed an upstream meson issue: https://github.com/mesonbuild/meson/issues/4427#issuecomment-433553689 Another option would be to use binfmt-misc handling (which works neatly locally), but on the runners we have I can't control that. Maybe I can beg Daniel Stone ... For not let's just mark this stage as optional and that failures are allowed. v2: Use the new gitlab 1.4 feature to rebuild docker images when necessary. Cc: Sean Paul <sean@poorly.run> Cc: Eric Anholt <eric@anholt.net> Cc: Dylan Baker <dylan@pnwbakers.com> Cc: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Eric Anholt <eric@anholt.net> (v1) Reviewed-by: Petri Latvala <petri.latvala@intel.com> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-31gitlab-ci: Build docs by defaultDaniel Vetter
I just realized that when you push to a non-HEAD branch, then gitlab doesn't bother to build the deploy stage. Which means if you push to a branch, then that's not properly tested. So build docs right away. We're not going to waste anything, since the deploy:pages job will pick up right from where we left. Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-10-31gitlab-ci: build test libunwind stubsDaniel Vetter
We want to make sure this keeps working nicely Cc: Sean Paul <sean@poorly.run> Cc: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-10-30gitlab-ci: Build Docker images if Dockerfiles have changedArkadiusz Hiler
The jobs that build container images and upload them to the registry do not have to be manual any longer. By leveraging the new only-changes feature (GitLab 11.4), we can trigger those jobs conditionally on any alterations to the Dockerfiles. Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-24gitlab-ci: Do meson build with oldest supported mesonArkadiusz Hiler
Documentation building differs for meson < 0.47, so let's make sure that it works. Also remove a comment that has slipped through. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-24gitlab-ci: Compare test-list.txt(s) generated by meson and autotoolsArkadiusz Hiler
Let's make sure that we haven't missed any tests with any of the supported build systems. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-24gitlab-ci: Compile using autotoolsArkadiusz Hiler
Let's make sure that IGT compiles with autotools. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-24gitlab-ci: Parametrize images used with CI_ variablesArkadiusz Hiler
The container stage was already using CI_ variables, pushing to the right registry. Let's do that for the pulling containers too. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-23Add GitLab's CI/CD configurationArkadiusz Hiler
The CI/CD pipeline is configured the following way: 1. Build docker images and add them to repo's registry (manual step for now, automation needs GitLab to be updated). 2. Build igt with meson on Debian and Fedora. 3. Run `ninja tests` on Fedora. 4. Build and publish docs as an artifact, for GitLab Pages. v2: Typos and fully-featured meson build. v3: Use variables instead of hard-coding registry and project. Cc: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Petri Latvala <petri.latvala@intel.com>