Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 1 | # This is the tag of the docker image used for the build jobs. If the |
| 2 | # image doesn't exist yet, the containers stage generates it. |
| 3 | # |
| 4 | # In order to generate a new image, one should generally change the tag. |
| 5 | # While removing the image from the registry would also work, that's not |
| 6 | # recommended except for ephemeral images during development: Replacing |
| 7 | # an image after a significant amount of time might pull in newer |
| 8 | # versions of gcc/clang or other packages, which might break the build |
| 9 | # with older commits using the same tag. |
| 10 | # |
| 11 | # After merging a change resulting in generating a new image to the |
| 12 | # main repository, it's recommended to remove the image from the source |
| 13 | # repository's container registry, so that the image from the main |
| 14 | # repository's registry will be used there as well. |
| 15 | variables: |
| 16 | UPSTREAM_REPO: mesa/drm |
Eric Engestrom | 55be53d | 2019-10-20 23:06:56 +0100 | [diff] [blame] | 17 | DEBIAN_TAG: "2019-11-12" |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 18 | DEBIAN_VERSION: buster-slim |
| 19 | DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG" |
Daniel Stone | 946fa21 | 2018-09-06 11:01:17 +0100 | [diff] [blame] | 20 | |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 21 | include: |
| 22 | - project: 'wayland/ci-templates' |
| 23 | ref: 1f7f57c64ff4ebbf7292e3b7a13600518b8cb24c |
| 24 | file: '/templates/debian.yml' |
Eric Engestrom | 7f7c28d | 2018-09-06 12:10:50 +0100 | [diff] [blame] | 25 | |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 26 | stages: |
| 27 | - containers |
| 28 | - build |
| 29 | |
| 30 | |
| 31 | # When & how to run the CI |
| 32 | .ci-run-policy: |
Eric Engestrom | 1128fa1 | 2019-11-12 12:13:11 +0000 | [diff] [blame] | 33 | except: |
| 34 | - schedules |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 35 | retry: |
| 36 | max: 2 |
| 37 | when: |
| 38 | - runner_system_failure |
| 39 | |
| 40 | # CONTAINERS |
| 41 | |
| 42 | debian: |
| 43 | stage: containers |
| 44 | extends: |
| 45 | - .ci-run-policy |
| 46 | - .debian@container-ifnot-exists |
| 47 | variables: |
| 48 | GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image |
| 49 | DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh' |
| 50 | |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 51 | |
| 52 | # BUILD |
| 53 | |
| 54 | .meson-build: |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 55 | stage: build |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 56 | variables: |
| 57 | GIT_DEPTH: 10 |
| 58 | script: |
| 59 | - meson _build |
| 60 | -D amdgpu=true |
| 61 | -D cairo-tests=true |
| 62 | -D etnaviv=true |
| 63 | -D exynos=true |
| 64 | -D freedreno=true |
| 65 | -D freedreno-kgsl=true |
| 66 | -D intel=true |
| 67 | -D libkms=true |
| 68 | -D man-pages=true |
| 69 | -D nouveau=true |
| 70 | -D omap=true |
| 71 | -D radeon=true |
| 72 | -D tegra=true |
| 73 | -D udev=true |
Eric Engestrom | 55be53d | 2019-10-20 23:06:56 +0100 | [diff] [blame] | 74 | -D valgrind=auto |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 75 | -D vc4=true |
| 76 | -D vmwgfx=true |
Eric Engestrom | 55be53d | 2019-10-20 23:06:56 +0100 | [diff] [blame] | 77 | ${CROSS+--cross /cross_file-$CROSS.txt} |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 78 | - ninja -C _build |
| 79 | - ninja -C _build test |
| 80 | - DESTDIR=$PWD/install ninja -C _build install |
| 81 | artifacts: |
| 82 | when: on_failure |
| 83 | paths: |
| 84 | - _build/meson-logs/* |
Eric Engestrom | 4a9030d | 2018-08-30 15:51:40 +0100 | [diff] [blame] | 85 | |
Eric Engestrom | 1128fa1 | 2019-11-12 12:13:11 +0000 | [diff] [blame] | 86 | meson-x86_64: |
| 87 | extends: |
| 88 | - .ci-run-policy |
| 89 | - .meson-build |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 90 | image: $DEBIAN_IMAGE |
| 91 | needs: |
| 92 | - debian |
| 93 | |
Eric Engestrom | 202d10a | 2018-09-05 12:23:26 +0100 | [diff] [blame] | 94 | meson-i386: |
| 95 | extends: meson-x86_64 |
| 96 | variables: |
| 97 | CROSS: i386 |
| 98 | |
Eric Engestrom | a39c34e | 2018-10-24 11:19:15 +0100 | [diff] [blame^] | 99 | meson-aarch64: |
| 100 | extends: meson-x86_64 |
| 101 | variables: |
| 102 | CROSS: arm64 |
| 103 | |
| 104 | meson-armhf: |
| 105 | extends: meson-x86_64 |
| 106 | variables: |
| 107 | CROSS: armhf |
| 108 | |
Eric Engestrom | 1128fa1 | 2019-11-12 12:13:11 +0000 | [diff] [blame] | 109 | meson-arch-daily: |
| 110 | rules: |
| 111 | - if: '$SCHEDULE == "arch-daily"' |
| 112 | when: on_success |
| 113 | - when: never |
| 114 | image: archlinux/base |
| 115 | before_script: |
| 116 | - pacman -Syu --noconfirm --needed |
| 117 | base-devel |
| 118 | cairo |
| 119 | cunit |
| 120 | docbook-xsl |
| 121 | libatomic_ops |
| 122 | libpciaccess |
| 123 | libxslt |
| 124 | meson |
| 125 | valgrind |
Eric Engestrom | c69c9c4 | 2019-09-25 22:54:59 +0100 | [diff] [blame] | 126 | extends: .meson-build |