ci: Introduce the ability to use a reverse proxy to cache the artifacts.

The LAVA jobs we send off have URLs to gitlab.fdo, since the
gitlab-runner job itself has no http server with which to pass the
kernel/rootfs/drivers off to the jobs (and, in theory, the lava
dispatcher could be on a different network from the gitlab-runner job,
as is the case with Collabora's lab).

For Google's LAVA lab, I've set up nginx as a reverse proxy so that we
only have to download any given artifact once per pipeline, reducing
our LAVA downloads bandwidth cost by 4x.

Note that normal http proxying is not suitable, since gitlab.fdo uses
HSTS mandating https, and your http proxy can't see the insides of the
https requests to cache them (without using something like squid's
sslbump that requires making an self-signed cert and installing it
globally on the system).
43 jobs for !4024 with ci-reverse-proxy in 16 minutes and 21 seconds (queued for 3 seconds)
latest detached
Status Job ID Name Coverage
  Container
passed #1794324
aarch64
arm_build

00:00:28

passed #1794325
aarch64
arm_test

00:00:28

passed #1794321
x86_build

00:00:21

passed #1794323
x86_build_old

00:00:21

passed #1794322
x86_test-gl

00:00:21

 
  Build
passed #1794329
aarch64
meson-arm64

00:03:29

passed #1794330
aarch64
meson-arm64-build-test

00:03:05

passed #1794328
aarch64
meson-armhf

00:10:31

passed #1794331
meson-clang

00:05:19

passed #1794334
meson-clover

00:03:11

passed #1794335
meson-clover-old-llvm

00:05:01

passed #1794337
meson-i386

00:04:18

passed #1794327
meson-main

00:07:00

passed #1794340
meson-mingw32-x86_64

00:05:15

passed #1794339
gstreamer
meson-ppc64el

00:04:52

passed #1794338
gstreamer
meson-s390x

00:04:56

passed #1794326
meson-testing

00:06:58

passed #1794336
meson-vulkan

00:05:23

passed #1794341
scons

00:05:51

passed #1794342
scons-old-llvm

00:02:53

passed #1794332
scons-swr

00:05:33

passed #1794333
scons-win64

00:06:24

 
  Test
passed #1794360
mesa-cheza
arm64_a630_gles2

00:01:46

passed #1794362
mesa-cheza
arm64_a630_gles3

00:06:15

passed #1794361
mesa-cheza
arm64_a630_gles31

00:04:24

passed #1794348
lava-mesa-db410c
freedreno-a307-gles2

00:06:44

passed #1794347
lava-meson-gxl-s905x-libretech-cc
lima-mali450-test:arm64

00:08:01

passed #1794363
llvmpipe-traces

00:00:28

passed #1794343
lava-sun50i-h6-pine-h64
panfrost-t720-gles2:arm64

00:07:58

passed #1794344
lava-rk3288-veyron-jaq
panfrost-t760-gles2:armhf

00:05:15

passed #1794345
lava-rk3399-gru-kevin
panfrost-t860-gles2:arm64

00:04:59

passed #1794346
lava-rk3399-gru-kevin
panfrost-t860-gles3:arm64

00:07:18

passed #1794350
piglit-glslparser

00:04:17

passed #1794349
piglit-quick_gl

00:07:39

passed #1794351
piglit-quick_shader

00:07:10

passed #1794352
test-llvmpipe-gles2

00:04:08

passed #1794353
test-softpipe-gles2

00:01:40

passed #1794356
test-softpipe-gles31 1/4

00:02:47

passed #1794354
test-softpipe-gles3 1/2

00:05:06

passed #1794357
test-softpipe-gles31 2/4

00:05:07

passed #1794358
test-softpipe-gles31 3/4

00:04:46

passed #1794359
test-softpipe-gles31 4/4

00:01:50

passed #1794355
test-softpipe-gles3 2/2

00:05:33