summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* gitlab-ci: Use separate arm64 build/test docker imagesMichel Dänzer2019-11-061-3/+14
| | | | | | | | | | | | | | | | The image used for test jobs is only about 1/6 as big as before, which may help avoid some issues with some of the test boards. Inspired by https://gitlab.freedesktop.org/mesa/mesa/issues/2046 . v2: * Leave LIBDRM_VERSION at 2.4.99 (Daniel Stone) * Delete more build artifacts from dEQP tree (Daniel Stone) v3: * Set LD_LIBRARY_PATH for ldd Acked-by: Daniel Stone <[email protected]> # v2 Reviewed-by: Eric Anholt <[email protected]> # Except for the ldd line
* gitlab-ci: Set arm job CCACHE_DIR properlyMichel Dänzer2019-11-051-1/+2
| | | | | | | | | | | | | | | | $PWD doesn't work for variables:, it ended up as "/ccache", always starting with an empty cache. v2: * Use relative path and realpath v3: * Use $CI_PROJECT_DIR (Eric Anholt) * Clear ccache stats in before_script if the cache is in $CI_PROJECT_DIR Fixes: c9df92bf795a "ci: Switch over to an autoscaling GKE cluster for builds." Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* ci: Switch over to an autoscaling GKE cluster for builds.Eric Anholt2019-10-311-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | The GKE pool we're using is 1-3 32-core VMs, preemptible (to keep costs down), with 8 jobs concurrent per system. We have plenty of memory (4G/core), so we run make -j8 to try to keep the cores busy even when one job is in a single-threaded step (docker image download, git clone, artifacts processing, etc.) When all jobs are generating work for all the cores, they'll be scheduled fairly. The nodes in the pool have 300GB boot disks (over-provisioned in space to provide enough iops and throughput) mounted to /ccache, and CACHE_DIR set pointing to them. This means that once a new autoscaled-up node has run some jobs, it should have a hot ccache from then on (instead of having to rely on the docker container cache having our ccache laying around and not getting wiped out by some other fd.o job). Local SSDs would provide higher performance, but unfortunately are not supported with the cluster autoscaler. For now, the softpipe/llvmpipe test runs are still on the shared runners, until I can get them ported onto Bas's runner so they can be parallelized in a single job. Reviewed-by: Michel Dänzer <[email protected]>
* gitlab-ci: build a recent enough version of GLVND (ie. 1.2.0)Eric Engestrom2019-10-311-1/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* gitlab-ci: Disable meson-windows job for the time beingMichel Dänzer2019-10-301-1/+1
| | | | | It needs a CI runner carrying the mesa-windows tag, but there's none available currently.
* gitlab-ci: Only run the pipeline if any files affecting it have changedMichel Dänzer2019-10-291-3/+21
| | | | | | | | | | | | | | | | E.g. documentation-only changes cannot affect the outcome of the pipeline, so don't waste resources on running it. The thing we need to be careful about here is that the container stage jobs must always run if any later stage jobs using the corresponding docker images run. We're currently using the same .ci-run-policy template for all jobs, so this is trivially true. v2: * Add bin/ and common.py (Eric Engestrom) Acked-by: Alyssa Rosenzweig <[email protected]> # v1 Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Update required libdrm versionAlexandros Frantzis2019-10-291-1/+1
| | | | | | | | | | | | | | Commit 9edcce2a32ed bumped the required libdrm-amdgpu version to 2.4.100. Update the version we use in our CI scripts to avoid CI build failures. Also bump the debian image name for this change to take effect. Note that amdgpu is only built with the debian-buster image, so only this image requires an update. Fixes: 9edcce2a ("ac: get tcc_harvested from the kernel") Signed-off-by: Alexandros Frantzis <[email protected]> Reviewed-by: Erik Faye-Lund <[email protected]>
* gitlab-ci: fixup debian tagsErik Faye-Lund2019-10-281-1/+1
| | | | | | | When resolving a merge-conflict, I accidentally only updated the ARM64-tag tag. Let's correct this. Fixes: 3d529c17393 ("gitlab-ci: also build Zink on CI")
* gitlab-ci: also build Zink on CIErik Faye-Lund2019-10-281-2/+2
| | | | | | | This prevents accidentally breaking the driver-build while working on other drivers. Signed-off-by: Erik Faye-Lund <[email protected]>
* gitlab-ci: Add a job for meson on windowsDylan Baker2019-10-251-1/+19
| | | | | | | | | | | | | | | | This adds a new CI job that runs on windows with MSVC. It currently builds softpipe and osmesa, and runs the related unit tests. It does rely on meson's wraps for zlib, but I've set up caching of the wrap dependencies so hopefully that wont be a problem. I really wanted to user powershell for this, but there just isn't an easy way to do that, it's much easier to use batch scripts, so thats what I used. The leading `/` for .gitlab-ci/lava... must be removed because windows doesn't understand it, and when it reads the file the job ends in error. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: refactor out some common stuff for Windows and LinuxDylan Baker2019-10-251-7/+12
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* scons: Print a deprecation warning about using scons on not windowsDylan Baker2019-10-241-2/+2
| | | | | | | | At this point meson should be able to handle all of the non-windows platforms just fine; we'd like to be able to stop maintaining scons for those platforms sooner than later. Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Enable UBSan for the meson-vulkan jobMichel Dänzer2019-10-241-0/+4
| | | | | | | It doesn't report any errors now. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Adam Jackson <[email protected]>
* gitlab-ci: Enable llvmpipe in ARM build jobsMichel Dänzer2019-10-221-2/+2
| | | | | | | | | v2: * Use LLVM 8 from buster-backports v3: * Use LLVM 7 again for armhf, llvmpipe is still broken there with LLVM 8 Acked-by: Eric Engestrom <[email protected]>
* gitlab-ci: Use native aarch64 runner for ARM build jobsMichel Dänzer2019-10-221-27/+32
| | | | | | | | | | | | | | This allows running the regression tests. One downside is that we can't easily build the Vulkan overlay layer, because only x86 binaries of the glslang validator are available. If that's important, we could either use those binaries via qemu, or build it from source. v2: * Add :amd64 suffix to existing debian-9/10 job names (Eric Engestrom) Acked-by: Eric Engestrom <[email protected]> # v1
* gitlab-ci: Explicitly list debian-10 in needs: for .deqp-test templateMichel Dänzer2019-10-221-1/+3
| | | | | | | Apparently needs: in a definition overwrites inherited ones. So .deqp-test effectively didn't declare needs: for debian-10, which means any jobs based on .deqp-test could spuriously run after the debian-10 job failed or was cancelled.
* Revert "gitlab-ci: Disable meson-mingw32-x86_64 job again for now"Dylan Baker2019-10-161-1/+1
| | | | | | This reverts commit d60b8679a46212d992dcd94b9d3eeebfcff3f00a. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Add a pkg-config for mingwDylan Baker2019-10-161-1/+1
| | | | | | | | The one debian provides is broken in buster+, so I've just written my own. This allows meson to find the installed zlib and prevents it from falling back to wraps. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: set a common job parent for test stageEric Engestrom2019-10-151-2/+8
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* gitlab-ci: set a common job parent for build stageEric Engestrom2019-10-151-4/+7
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* gitlab-ci: set a common job parent for container stageEric Engestrom2019-10-151-7/+12
| | | | | | | While at it, rename to singular "container" for consistency. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* gitlab-ci: Disable meson-mingw32-x86_64 job again for nowMichel Dänzer2019-10-111-1/+1
| | | | | | | | The wrapdb.mesonbuild.com SSL certificate expired, causing the job to fail: https://gitlab.freedesktop.org/mesa/mesa/-/jobs/731864 Switching to http:// doesn't avoid it: https://gitlab.freedesktop.org/daenzer/mesa/-/jobs/732043
* gitlab-ci: Add .use-debian-10 templateMichel Dänzer2019-10-111-6/+8
| | | | | | | | | | It simplifies the definitions of jobs using the Debian 10 image. The needs: was previously missing from the llvmpipe/softpipe test jobs, so they could spuriously run if the debian-10 job failed or was cancelled. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Remove redundant .meson-cross template scriptMichel Dänzer2019-10-111-2/+0
| | | | | | It was identical to the one inherited from the .meson-build template. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Add a mingw x86_64 jobDylan Baker2019-10-101-1/+12
| | | | | Acked-by: Eric Engestrom <[email protected]> (v1) Acked-by: Kristian H. Kristensen <[email protected]>
* gitlab-ci: Move LAVA-related files into top-level ci dirTomeu Vizoso2019-10-061-1/+1
| | | | | | | In preparation for testing drivers other than Panfrost in LAVA labs. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Run dEQP on devices with PanfrostTomeu Vizoso2019-10-061-0/+3
| | | | | | | | | | | Include Panfrost's gitlab.ci.yml file from Mesa's main .gitlab-ci.yml so we test on devices with Panfrost. This uses LAVA to schedule jobs in the devices and will be the base for testing Etnaviv, Lima, etc. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Use per-job ccacheMichel Dänzer2019-10-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of a single cache shared between all jobs, but reduce the maximum cache size to 1.5G (from 5G). Rationale for smaller cache: Pulling & pushing a 5G cache could take a long time. Consider https://gitlab.freedesktop.org/mesa/mesa/-/jobs/684010 (click the "Show complete raw" button to see timestamps): Pulling the cache took 1569927241-1569927194 = 47 seconds, pushing it 1569927671-1569927519 = 152, for a total of 199 seconds. The actual build took comparable 1569927518-1569927243 = 275 seconds, despite no cache hits from ccache. In other words, the cache transfers almost doubled the job duration, and they would have negated any build time benefits from ccache even with a high cache hit rate. Also, the smaller caches avoid blowing up storage requirements for them too much. Rationale for per-job caches: Making a single cache significantly smaller might result in cached build products from one job getting evicted by another job, reducing the likelihood of cache hits from previous pipelines. v2: * Move up "ccache --max-size=1500M" call (Eric Engestrom) Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Set ccache path for cross compilers in meson cross fileMichel Dänzer2019-10-011-1/+1
| | | | | | | Without this, meson didn't pick up ccache for cross builds. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* gitlab-ci: Add test-container:arm64 to needs: for arm64 test jobsMichel Dänzer2019-09-301-1/+3
| | | | | | | | | | | Without this, it was theoretically possible for the jobs to run before the docker image was ready. v2: * Use - list syntax instead of [] (Eric Engestrom) Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Add needs: for x86 buster docker imageMichel Dänzer2019-09-301-0/+2
| | | | | | | | | | | This allows most build jobs to run before the stretch or arm64 docker images are ready. v2: * Use - list syntax instead of [] (Eric Engestrom) Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Declare needs: for stretch docker imageMichel Dänzer2019-09-301-4/+11
| | | | | | | | | | | This allows the *-old-llvm jobs to run before the buster docker images are ready. v2: * Use - list syntax instead of [] (Eric Engestrom) Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Merge scons-nollvm and scons-llvm jobsMichel Dänzer2019-09-181-8/+3
| | | | | | The new job tests scons without LLVM and with all LLVM versions >= 6.0. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Test scons with all LLVM versionsMichel Dänzer2019-09-181-3/+8
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Move scons build/test commands to a separate shell scriptMichel Dänzer2019-09-181-5/+1
| | | | | | Preparatory, no functional change intended. Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Create separate docker images for Debian stretch & busterMichel Dänzer2019-09-181-14/+38
| | | | | | | | | | | | | | Pros: * Less fragile due to not mixing packages from stretch and buster * No longer need to use third-party LLVM packages * The buster image now uses GCC 8 for C++ as well (previously 6 for C++, 8 for C), allowing to drop some hacks Con: * The stretch image now only uses GCC 6 for C as well as C++ * Need separate jobs for testing old LLVM versions Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Reference full ci-templates commit hashMichel Dänzer2019-09-181-1/+1
| | | | | | 8 digits might become ambiguous at some point. Reviewed-by: Eric Engestrom <[email protected]>
* ci: Run tests on i386 cross buildsAdam Jackson2019-09-171-3/+0
| | | | | | | | | Yes, some tests fail, but we can turn those into XFAILs at meson time. Better to keep the things that work working than not cover them at all. Unfortunately XPASS results will not cause the build to fail until we update CI to meson 0.51 or newer. Reviewed-by: Daniel Stone <[email protected]>
* gitlab-ci: Move up meson-arm64 job definitionMichel Dänzer2019-09-161-42/+42
| | | | | | | This might allow the arm64 tests to start running earlier. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Move dependencies/needs for meson-main job to .deqp-testMichel Dänzer2019-09-161-6/+3
| | | | Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Simplify some job definitions by extending more similar jobsMichel Dänzer2019-09-161-37/+15
| | | | | | | | | | v2: * Preserve setting NIR_VALIDATE=0 for all arm64_* jobs * Preserve setting DEQP_SKIPS=deqp-default-skips.txt for arm64_a306_gles2 jobs Reviewed-by: Eric Engestrom <[email protected]> # v1 Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Use multiple inheritance instead of YAML referencesMichel Dänzer2019-09-161-12/+16
| | | | | | | Support for multiple inheritance was added to GitLab recently. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Add needs stanza to arm64_a306_gles2 job definitionMichel Dänzer2019-09-161-0/+1
| | | | | | | | | This allows the arm64_a306_gles2 jobs to run as soon as the meson-arm64 job has finished. Fixes: 6f0dc087b7a5 "freedreno: Introduce gitlab-based CI." Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: rename stages to something simplerEric Engestrom2019-09-131-6/+6
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* freedreno: Introduce gitlab-based CI.Eric Anholt2019-09-121-4/+62
| | | | | | | | | | | | | | | | | | | | | | | | Since freedreno's kernel and GPU reset seem to be totally solid, we don't need to have the complexity of the LAVA setup that panfrost has. Instead, we can register some boards as shared gitlab runners and have the jobs run out of a docker container just like we do for llvmpipe. Just make sure that the DRI device node is passed through to the containers in the gitlab config ('devices = ["/dev/dri"]' under runners.docker). If a runner fails (networking dies, kernel panic, etc.) it'll take out one build but the rest can keep going since gitlab-runner is what pulls jobs. Since the runner pulls jobs, it also means that they can live behind firewalls instead of needing some public address to be accessed by gitlab.fd.o. For now, enable it just on db410c (A307) and cheza (A630) as those are the hardware that I have plenty of. A307 is only testing GLES2 since running all of GLES3 takes too long for the number of boards I've brought up. Acked-by: Rob Clark <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* gallium: Require LLVM >= 3.5Adam Jackson2019-09-111-4/+2
| | | | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> [ Michel Dänzer: Dropped jessie line from debian-install.sh again ]
* gitlab-ci: Use new needs: keywordMichel Dänzer2019-08-301-0/+3
| | | | | | | | | | | | | | | | This way, the test jobs can start running before all build+test jobs have finished, once the meson-main job has. Idea suggested by Daniel Stone on IRC. See https://docs.gitlab.com/ce/ci/directed_acyclic_graph/ and https://docs.gitlab.com/ce/ci/yaml/README.html#needs for details. v2: * Improve commit log (Daniel Stone, Eric Engestrom) Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: Move up meson-main job definitionMichel Dänzer2019-08-301-29/+29
| | | | | | | In order to increase the chance of it running early. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* gitlab-ci: bump LLVM to 8 for meson-vulkan and meson-cloverSamuel Pitoiset2019-08-231-2/+3
| | | | | | | To fix pipeline builds. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* gitlab-ci: Enable the GLES2/3 CTS on softpipe.Eric Anholt2019-08-201-0/+28
| | | | | | | | | | | | | | The GLES2 CTS takes about 8 minutes of total runtime (at parallel 4 is ~2 minutes in the test stage if runners are free), while GLES3 takes about 25. Since the GLES3 run is pretty expensive, just do a cheap touch test of 1 out of every 10 tests in the test list on MRs, until we can get the runtime down. v2: Drop the full run for now until we can bring runtime down or bring up a dedicated mesa runner. Reviewed-by: Eric Engestrom <[email protected]> (v1) Reviewed-By: Gert Wollny <[email protected]> (v1)