summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
AgeCommit message (Collapse)AuthorFilesLines
2020-01-22gitlab-ci: Use single if for manual job rules entryMichel Dänzer1-2/+1
I thought multiple ifs would all need to match, but looks like only the last one (or either one?) does. This should prevent a manual pipeline from getting created after merging changes which can't affect the pipeline. Reviewed-by: Eric Engestrom <eric@engestrom.ch> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474>
2020-01-22gitlab-ci: Set GIT_STRATEGY to none for the dummy jobMichel Dänzer1-0/+2
It doesn't need anything from the Git repository. Reviewed-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3474>
2020-01-22gitlab-ci: Skip ext_timer_query/time-elapsedMatt Turner1-0/+1
This test's result is unpredictable, so it may occasionally pass when we expect it to fail, thus causing the CI pipeline to fail. Reviewed-by: Eric Anholt <eric@anholt.net> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3498> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3498>
2020-01-15gitlab-ci: Stop using manual jobs for merge requestsMichel Dänzer1-27/+45
They were causing trouble with Marge Bot: The project settings require that the pipeline succeeds before a merge request (MR) can be merged, otherwise Marge doesn't wait for the pipeline to succeed before merging an MR assigned to her. But Marge can't start manual jobs, so she would always time out waiting for pipelines with manual jobs. To avoid this, use these rules: * Run the pipeline by default for MRs and main project branches changing any files affecting it. * For other MRs, run a single dummy job which always succeeds. * Don't run any jobs for main project branch changes (e.g. from an MR having been merged) not affecting the pipeline. * Allow jobs to be started manually on branches of forked projects, as before. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3361> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3361>
2020-01-14gitlab-ci: Consolidate container and build stages for LAVATomeu Vizoso1-9/+12
Use the normal build job to also prepare the artifacts for LAVA jobs. For that, the build container needs to also build the test suites, kernel, ramdisk, etc. Then the build job will place the just-built Mesa in the ramdisk and the test job can generate a LAVA job and point to those artifacts. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3295> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3295>
2020-01-07gitlab-ci: Test against LLVM / clang 9 on x86Michel Dänzer1-8/+9
They're not available for Debian buster yet, so we have to use upstream snapshot packages again. In contrast to earlier, we now store the LLVM APT repository key in Git instead of re-downloading it every time.
2020-01-06gitlab-ci: Switch LAVA jobs to use shared dEQP runnerTomeu Vizoso1-3/+3
Take one step towards sharing code between the LAVA and non-LAVA jobs, with the goals of reducing maintenance burden and use of computational resources. The env var DEQP_NO_SAVE_RESULTS allows us to skip the procesing of the XML result files, which can take a long time and is not useful in the LAVA case as we are not uploading artifacts anywhere at the moment. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-12-21llvmpipe: switch to NIR by defaultDave Airlie1-0/+4
Add LP_DEBUG=tgsi_ir (tgsi already taken) to fallback to TGSI paths. Disable NIR_VALIDATE in CI (Michel/Eric acked) Reviewed-by: Roland Scheidegger <sroland@vmware.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2303> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2303>
2019-12-11gitlab-ci: set RADV_DEBUG=checkir for RADV test jobsSamuel Pitoiset1-0/+1
This is used to validate if the driver emits correct LLVM IR. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-12-10gitlab-ci: Don't exclude any piglit quick_shader testsMichel Dänzer1-7/+0
Now that we're running these with process isolation enabled, their results will hopefully be stable. Reviewed-by: Eric Anholt <eric@anholt.net>
2019-12-06gitlab-ci: add a job that runs Vulkan CTS with RADV conditionallySamuel Pitoiset1-0/+39
Only Polaris10 is tested at the moment, and I disabled a TON of tests to keep a CTS run within 5 minutes because my local runner is a bit slow. A full CTS run takes more than 1h, which means it will hit the timeout. RADV CI can only be triggered manually on personal branches to avoid breaking the world because one runner is definitely not enough. This will allow us to test it until it's stable enough to be enabled by default. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: build RADV in meson-testingSamuel Pitoiset1-1/+1
This requires to bump LLVM to 8 because it's the minimum supported version by RADV. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: allow to run dEQP Vulkan with DEQP_VERSamuel Pitoiset1-2/+13
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: add a new base test job for VKSamuel Pitoiset1-3/+18
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: add a new job that builds a base test image for VKSamuel Pitoiset1-0/+6
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: add a gl suffix to the x86 test image and all test jobsSamuel Pitoiset1-12/+12
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-06gitlab-ci: Overhaul job run policyMichel Dänzer1-22/+28
Use new rules: instead of only: For container stage jobs: * In the main Mesa project, run them by default. * In merge requests, run them by default if any files affecting pipeline results are changed. * In all other cases (in particular branches in personal projects), don't run them by default but allow triggering them manually. build & test stage jobs are left at the default (when: on_success), so they will run automatically once all their dependencies are satisified. (Using the same rules as above would require these jobs to be manually triggered as well, which is only possible once all dependency jobs have passed) Please be considerate of CI runner resources and cancel unneeded jobs on personal branches with no corresponding merge requests (this can be done before the jobs start running). In summary: No more special branch names. Unnecessary job runs are avoided by default, but jobs which don't run by default can be triggered manually. v2: * Split out LAVA changes to separate commit * Clarify commit log a little, in particular WRT build/test stage jobs Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> # v1 Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> # v1 Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> # v1 Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2019-12-05ci: Disable egl_ext_device_drm tests in piglit.Eric Anholt1-0/+2
If the runner has a HW device that would be supported, even without /dev/dri forwarded into the container, it will be enumerated and the tests on llvmpipe fail with (for example): libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device. libEGL warning: MESA-LOADER: failed to open i965 (search paths /builds/anholt/mesa/install/lib/dri) Given that we can't necessarily control the DRI devices present on the runners (particularly for developers bringing their own runners to reduce the demands on fd.o's shared resources), just skip these tests in CI. Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-12-04gitlab-ci: bump piglit checkout commitTapani Pälli1-1/+1
Commit also updates the Piglit quick_gl.txt, list modifications happened due to following Piglit commits: c248bf201,c acff58ca, 5603e2e60. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2019-12-04gitlab-ci: Run piglit glslparser & quick_shader tests separatelyMichel Dänzer1-3/+9
And only use --process-isolation false for the quick_gl tests. This will hopefully avoid variance in the test results that we've been seeing lately. But even if it doesn't, it should at least help narrow down the cause of the variance. Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
2019-12-03gitlab-ci: disable junit results for deqpRob Clark1-3/+0
They don't seem to be hugely useful, and seem to be bogging down gitlab. Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-12-03gitlab-ci: Update to current ci-templates masterMichel Dänzer1-1/+1
Fixes skopeo copy failures. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
2019-11-27gitlab-ci: Put HTML summary in artifacts for failed piglit jobsMichel Dänzer1-0/+5
This will make it easier to look at details of failed / skipped tests. Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-27gitlab-ci: Stop reporting piglit test results via JUnitMichel Dänzer1-3/+0
It was basically useless in this form, and processing the JUnit data in the GitLab backend was pretty expensive. Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-22gitlab-ci/deqp: generate junit resultsRob Clark1-0/+3
Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-22gitlab-ci: bump arm test containerRob Clark1-2/+2
To pick up updated cts_runner and netcat for the flake reporting. Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-22gitlab-ci/deqp: detect and report flakesRob Clark1-1/+2
If there are a small number of fails, re-run to determine if they are flakes, and optionally (if `$FLAKES_CHANNEL` configured) report the flakes. This way flakes don't interfere with developers working on other drivers, but get logged so that the developers working on the flaking driver can monitor the situation. Signed-off-by: Rob Clark <robdclark@chromium.org> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-22gitlab-ci: reduce the number of scons buildSamuel Pitoiset1-4/+0
It seems overkill to me to build scons 7x for every pipeline. Scons is now build with the oldest llvm version in scons-old-llvm and with the newest llvm version in scons. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-21ci: Move freedreno's parallelism to the runner instead of gitlab-ci jobs.Eric Anholt1-3/+1
I set the runners to concurrency=1, so they serve only one gitlab-ci job at at time. Swap over to using the parallel runner now to keep the runners busy, more efficiently than spawning many docker containers and downloading artifacts multiple times, and producing easier-to-understand results for browsing on the web. This bumps the a306 runners to 4x parallel instead of 2x like before, but cheza gles3 drops from 6 to 4. Current rough timings of the jobs (if no container download): db410c-gles2: 5:00 a630-gles2: 1:30 a630-gles3: 6:00 a630-gles31: 5:30 a630-gles3 is a bit longer than I like, but it should come back down once I can sort out the NIR algebraic rewinding.
2019-11-21gitlab-ci: Directly use host-mapped directory for ccacheMichel Dänzer1-9/+3
Use hardcoded /cache/mesa/ccache for the cache, so it will be shared by all jobs of all Mesa projects running on the same runner host. This should increase the hit rate and decrease the worst case storage used. Further benefits of directly using a host-mapped directory: * Saves up to ~1 minute per job for restoring and saving the cache contents via the GitLab CI cache mechanism * Cache contents generated by failed jobs are no longer lost * Jobs running in parallel on the same runner host can get hits from each other Also enable compression, so the default maximum cache size of 5G might be sufficient. v2: * Move CCACHE_DIR variable to the .build-linux template Suggested-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net> # v1
2019-11-21gitlab-ci: remove now useless meson-swr-glvnd build jobSamuel Pitoiset1-24/+0
All things are already part of meson-main. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-21gitlab-ci: build GLVND in meson-clangSamuel Pitoiset1-1/+2
Building GLVND in meson-main doesn't work because this disables libEGL and it's needed for running shader-db. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-21gitlab-ci: build swr in meson-mainSamuel Pitoiset1-2/+2
Now that debugoptimized isn't set and that all test jobs depend on meson-testing, enabling swr shouldn't slowdown the CI. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-21gitlab-ci: do not build with debugoptimized for meson-mainSamuel Pitoiset1-1/+0
This should reduce compile time because optimizations are costly. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-21gitlab-ci: add a job that only build things needed for testingSamuel Pitoiset1-4/+21
For turnip and RADV testing, we will need a debugoptimized build without UBSAN. This introduces meson-testing which builds only the things that are needed by the test stage. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-21gitlab-ci: fix ldd check for Vulkan driversSamuel Pitoiset1-1/+1
The 'dri' directory isn't created when building Vulkan drivers. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-20gitlab-ci: bump piglit checkout commitTimothy Arceri1-1/+1
2019-11-15gitlab-ci: Organize images using new REPO_SUFFIX templates featureMichel Dänzer1-49/+61
Two benefits: Most docker image related environment variables can now be defined in the jobs where they're used instead of globally. The DEBIAN_TAG values are propagated to other jobs via YAML anchors. Images on https://gitlab.freedesktop.org/mesa/mesa/container_registry are now organized in separate repositories with a suffix matching the name of the job which makes sure the image is there. Acked-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2019-11-15gitlab-ci: Rename container install scripts to match job names (better)Michel Dänzer1-6/+1
Cleans up .gitlab-ci/ a little, and allows using a single DEBIAN_EXEC line for all container jobs. v2: * Use lava_arm.sh instead of arm_lava.sh for consistency with v2 of the previous change Reviewed-by: Eric Anholt <eric@anholt.net> # v1 Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2019-11-15gitlab-ci: Use functional container job namesMichel Dänzer1-18/+18
This makes it easier to tell which job is which in a pipeline. v2: * Use lava_arm{64,hf} instead of arm{64,hf}_lava to keep these jobs together in pipeline overviews Reviewed-by: Eric Anholt <eric@anholt.net> # v1 Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2019-11-15gitlab-ci: Document that ci-templates refs must be in syncMichel Dänzer1-0/+1
Otherwise there can be weird breakage. (Removing the include from .gitlab-ci/lava-gitlab-ci.yml doesn't seem possible unfortunately: https://gitlab.freedesktop.org/daenzer/mesa/pipelines/79458) Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2019-11-15gitlab-ci: update Piglit commit, update skipsTapani Pälli1-1/+1
Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-14gitlab-ci: auto-cancel CI runs when a newer commit is pushed to the same branchEric Engestrom1-0/+2
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net> Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-13gitlab-ci: build RADV on ARM64Samuel Pitoiset1-0/+1
The ARMHF LLVM package is LLVM 7 but RADV requires LLVM 8. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-13gitlab-ci: build a specific libdrm version for ARM64Samuel Pitoiset1-1/+1
RADV requires libdrm-2.4.100 but the distrib package is too old. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-12ci: Enable all of GLES3/3.1 testing for softpipe.Eric Anholt1-11/+9
Now that we're not using so many job slots, it's easy to get these jobs run in a reasonable amount of time (gles3 took 10 minutes for 4 cores, and gles31 was 15 minutes for 4 cores). Acked-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-12ci: Use cts_runner for our dEQP runs.Eric Anholt1-8/+8
This runner is a little project by Bas, written in C++, that spawns threads that then loop grabbing chunks of the (randomly shuffled but consistently so) test list and hand it to a dEQP instance. As the remaining list gets shorter, so do the chunks, so hopefully the threads all complete effectively at once. It also handles restarting after crashes automatically. I've extended the runner a bit to do what I was doing in the bash scripts before, like the skip list and expected failures handling. This project should also be a good baseline for extending to handle retesting of intermittent failures. By switching to it, we can have the swrast tests just take up one job slot on the shared runners and keep their allotment of CPUs busy, instead of taking up job slots with single-threaded dEQP jobs. It will also let us (eventually, once I reprovision) switch the freedreno runners over to threading within the job instead of running concurrent jobs, so that memory scribbles in one pipeline don't affect unrelated pipelines, and I can experiment with their parallelism (particularly on a306 where we are frequently backed up) without trashing other people's jobs. What we lose in this process is per-test output in the log (not a big loss, I think, since we summarize fails at the end and reducing log length keeps chrome from choking on our logs so badly). We also drop the renderer sanity checking, since it's not saving qpa files for us to go poke through. Given that all the drivers involved have fail lists, if we got the wrong renderer somehow, we'd get a job failure anyway. v2: Rebase on droppong of the autoscale cluster and the arm64 build/test split. Use a script to deduplicate the cts-runner build. v3: Rebase on the amd64 build/test container split. Acked-by: Daniel Stone <daniels@collabora.com> (v1) Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> (v2)
2019-11-12ci: Use several debian buster packages instead of hand-building.Eric Anholt1-1/+1
This helps cut down our container build time. I've left a few that we're likely to rev more frequently or I was less confident in dropping. v2: Rebase on the build/test container split, now bumps the build container tag in this commit. Acked-by: Eric Engestrom <eric.engestrom@intel.com> (v1) Acked-by: Daniel Stone <daniels@collabora.com> (v1)
2019-11-12gitlab-ci: build libdrm using meson instead of autotoolsEric Engestrom1-1/+1
Autotools was deprecated for a while and has now been removed, so let's start using meson here so that we won't have any issues next time we update libdrm. Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-11-12gitlab-ci: Use separate docker images for x86 build/test jobsMichel Dänzer1-3/+11
Same as was done for the ARM images before. This should make it less painful to update to newer dEQP / piglit as well as to make changes to the build/test environment. Reviewed-by: Eric Anholt <eric@anholt.net>