.gitlab-ci.yml 2.6 KB
Newer Older
1
# DEBIAN_TAG is the tag of the docker image used for the build jobs. If the
2 3 4 5 6 7 8 9 10 11 12 13
# image doesn't exist yet, the docker-image stage generates it.
#
# In order to generate a new image, one should generally change the tag.
# While removing the image from the registry would also work, that's not
# recommended except for ephemeral images during development: Replacing an
# image after a significant amount of time might pull in newer versions of
# gcc/clang or other packages, which might break the build with older commits
# using the same tag.
#
# After merging a change resulting in generating a new image to the main
# repository, it's recommended to remove the image from the source repository's
# container registry, so that the image from the main repository's registry
14 15
# will be used there as well.  You can manage your images on your fork of:
# https://gitlab.freedesktop.org/xorg/xserver/container_registry
16
variables:
17 18 19 20
    UPSTREAM_REPO: xorg/xserver
    DEBIAN_VERSION: testing-slim
    DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'

21
    DEBIAN_TAG: "2019-03-27-2"
22 23 24 25 26 27
    IMAGE_LOCAL: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"

include:
  - project: 'wayland/ci-templates'
    ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
    file: '/templates/debian.yml'
28

29 30 31 32
stages:
    - docker-image
    - build-and-test

33 34 35 36 37 38 39
# Retry jobs after runner system failures
.retry: &retry
  retry:
    max: 2
    when:
      - runner_system_failure

40
debian-testing:
41 42
  extends: .debian@container-ifnot-exists
  stage: docker-image
43
  <<: *retry
44

45
.common-build-and-test:
46
    <<: *retry
47 48
    stage: build-and-test
    image: $IMAGE_LOCAL
49 50 51 52
    artifacts:
        when: on_failure
        paths:
            - build/test/piglit-results/
Michel Dänzer's avatar
Michel Dänzer committed
53 54 55
    cache:
        paths:
            - ccache/
56
    variables:
57
        LC_ALL: C.UTF-8
Michel Dänzer's avatar
Michel Dänzer committed
58 59 60 61
    before_script:
        - export CCACHE_BASEDIR="$PWD"
        - export CCACHE_DIR="$PWD/ccache"
        - export CCACHE_COMPILERCHECK=content
62
        - export PATH="/usr/lib/ccache:$PATH"
Michel Dänzer's avatar
Michel Dänzer committed
63 64
        - ccache --zero-stats
        - ccache --show-stats
65 66 67 68 69 70 71 72
    after_script:
        - CCACHE_DIR="$PWD/ccache" ccache --show-stats

autotools-build-and-test:
    extends: .common-build-and-test
    script:
        - mkdir build/
        - cd build/
73 74
        - ../autogen.sh --prefix=/usr
        - make -j$(nproc) distcheck
75
        - PIGLIT_DIR=/root/piglit XTEST_DIR=/root/xts make -j$(nproc) check
76 77 78

meson-build-and-test:
    extends: .common-build-and-test
79 80 81
    variables:
        PIGLIT_DIR: /root/piglit
        XTEST_DIR: /root/xts
82
    script:
83
        - meson -Dprefix=/usr -Dxephyr=true build/
84 85
        - ninja -C build/ install
        - ninja -C build/ test