freedreno: Introduce gitlab-based CI.

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 <robdclark@chromium.org>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
38 jobs for !1632 with fd-ci in 17 minutes and 24 seconds (queued for 4 seconds)
detached
Status Name Job ID Coverage
  Containers Build
passed debian #599695

00:00:22

passed test-container:arm64 #599696
aarch64

00:00:19

 
  Build+Test
passed meson-arm64 #599705

00:05:21

passed meson-armhf #599704

00:03:17

passed meson-clang #599699

00:09:12

passed meson-clover #599702

00:09:55

passed meson-i386 #599706

00:02:17

passed meson-main #599697

00:10:26

passed meson-swr-glvnd #599698

00:06:20

passed meson-vulkan #599703

00:02:50

passed scons-llvm #599708

00:03:59

passed scons-nollvm #599707

00:03:35

passed scons-swr #599700

00:06:26

passed scons-win64 #599701

00:06:55

 
  Test
passed arm64_a306_gles2 1/4 #599718
db410c

00:04:19

passed arm64_a306_gles2 2/4 #599719
db410c

00:06:05

passed arm64_a306_gles2 3/4 #599720
db410c

00:04:14

passed arm64_a306_gles2 4/4 #599721
db410c

00:04:30

passed arm64_a630_gles2 #599722
mesa-cheza

00:04:48

passed arm64_a630_gles31 1/4 #599729
mesa-cheza

00:06:05

passed arm64_a630_gles31 2/4 #599730
mesa-cheza

00:07:18

passed arm64_a630_gles31 3/4 #599731
mesa-cheza

00:07:09

passed arm64_a630_gles31 4/4 #599732
mesa-cheza

00:06:53

passed arm64_a630_gles3 1/6 #599723
mesa-cheza

00:04:11

passed arm64_a630_gles3 2/6 #599724
mesa-cheza

00:04:52

passed arm64_a630_gles3 3/6 #599725
mesa-cheza

00:04:12

passed arm64_a630_gles3 4/6 #599726
mesa-cheza

00:04:10

passed arm64_a630_gles3 5/6 #599727
mesa-cheza

00:04:05

passed arm64_a630_gles3 6/6 #599728
mesa-cheza

00:04:21

passed test-llvmpipe-gles2 1/4 #599709

00:03:34

passed test-llvmpipe-gles2 2/4 #599710

00:03:47

passed test-llvmpipe-gles2 3/4 #599711

00:03:35

passed test-llvmpipe-gles2 4/4 #599712

00:03:40

passed test-softpipe-gles2 1/4 #599713

00:01:27

passed test-softpipe-gles2 2/4 #599714

00:01:31

passed test-softpipe-gles2 3/4 #599715

00:01:17

passed test-softpipe-gles2 4/4 #599716

00:01:27

passed test-softpipe-gles3-limited #599717

00:03:20