summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 53b89c37eb265152a3341db1b38207de6518e6d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# IMAGE_TAG is the tag of the docker image used for the build jobs. If the
# 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
# will be used there as well.
variables:
  IMAGE_TAG: "debian-testing-20181213"
  IMAGE_LOCAL: "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
  IMAGE_MAIN: "registry.freedesktop.org/xorg/driver/xf86-video-amdgpu:$IMAGE_TAG"

stages:
  - docker-image
  - build


debian-testing:
  stage: docker-image
  only:
    changes:
      - .gitlab-ci.yml
      - .gitlab-ci/Dockerfile
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  script:
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
    - mkdir kaniko-context
    - |
      echo "FROM $IMAGE_LOCAL" > kaniko-context/Dockerfile
      # If the image exists in the local registry, skip to the build-and-test job
      set +e
      set -x
      /kaniko/executor --context kaniko-context --no-push && exit 0
      set +x
      set -e
    - |
      echo "FROM $IMAGE_MAIN" > kaniko-context/Dockerfile
      # Try to re-use the image from the main repository's registry, and if
      # that fails, generate a local image from scratch
      set +e
      set -x
      /kaniko/executor --context kaniko-context --destination $IMAGE_LOCAL && exit 0
      set +x
      set -e
    - /kaniko/executor --context $CI_PROJECT_DIR/.gitlab-ci --destination $IMAGE_LOCAL


image: $IMAGE_LOCAL

# The default build instructions
.default_build:
  stage: build
  script:
  - ./autogen.sh
  - make -j$(nproc) check V=1
  variables:
    CFLAGS: "-pipe -g -O2 -Werror"
    ACLOCAL_PATH: /usr/local/xserver-$XSERVER_VERSION/share/aclocal
    PKG_CONFIG_PATH: /usr/local/xserver-$XSERVER_VERSION/lib/pkgconfig

xserver-1.20:
  extends: .default_build
  script:
  - ./autogen.sh
  - make -j$(nproc) check V=1
  - make install V=1
  - make -j$(nproc) distcheck
  variables:
    XSERVER_VERSION: "1.20"

xserver-1.20-clang:
  extends: .default_build
  variables:
    CC: clang
    XSERVER_VERSION: "1.20"

xserver-1.13:
  extends: .default_build
  script:
  - ./autogen.sh --disable-glamor
  - make -j$(nproc) check V=1
  variables:
    XSERVER_VERSION: "1.13"

xserver-1.14:
  extends: xserver-1.13
  variables:
    XSERVER_VERSION: "1.14"

xserver-1.15:
  extends: xserver-1.14
  variables:
    XSERVER_VERSION: "1.15"

xserver-1.16:
  extends: .default_build
  variables:
    XSERVER_VERSION: "1.16"

xserver-1.17:
  extends: .default_build
  variables:
    XSERVER_VERSION: "1.17"

xserver-1.18:
  extends: .default_build
  variables:
    XSERVER_VERSION: "1.18"

xserver-1.18-clang:
  extends: xserver-1.18
  variables:
    CC: clang

xserver-1.19:
  extends: .default_build
  variables:
    XSERVER_VERSION: "1.19"

xserver-1.19-clang:
  extends: xserver-1.19
  variables:
    CC: clang