summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 2ae3b06e68a432d5841fc20e8ced8c769b9df039 (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
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:

.templates_sha: &template_sha 16f790f93f893394b70d7048fb0e8a981ceaa3c5 # see https://docs.gitlab.com/ee/ci/yaml/#includefile

include:
  - project: 'freedesktop/ci-templates'
    ref: *template_sha
    file: '/templates/debian.yml'

stages:
  - prep
  - install xserver
  - build

variables:
  FDO_DISTRIBUTION_TAG: '2020-12-14.0'  # change this to rebuild the images
  FDO_DISTRIBUTION_VERSION: 'stable'
  FDO_DISTRIBUTION_PACKAGES: 'git ca-certificates meson g++ pkgconf libpixman-1-dev xserver-xorg-input-wacom libx11-dev libxi-dev libxext-dev libxrandr-dev libxtst-dev libxxf86dga-dev'

  MESON_BUILDDIR: 'build dir'
  NINJA_ARGS: ''
  MESON_ARGS: ''

# We're using the X Server's meson build image as base image. This way we have
# all the dependencies for building the actual server already installed and
# don't need to worry about those.
#
# It'd be better to sync this with the server properly because any tag changes
# in the server may result in this image disappearing. But for now this will do.
container-prep:
  extends:
    - .fdo.container-build@debian
  stage: prep
  variables:
    GIT_STRATEGY: none
    FDO_BASE_IMAGE: registry.freedesktop.org/xorg/xserver/debian/buster-slim:2020-11-16

xserver-build:
  extends:
    - .fdo.distribution-image@debian
  stage: install xserver
  script:
    - export INSTDIR="$PWD/_inst"
    - git clone --depth=1 https://gitlab.freedesktop.org/xorg/xserver
    - pushd xserver > /dev/null
    - meson -Dc_args="-fno-common" -Dprefix="$INSTDIR" $MESON_OPTIONS _build
    - ninja -j${FDO_CI_CONCURRENT:-4} -C _build install
    - popd > /dev/null
  variables:
    MESON_OPTIONS: '-Dxwayland=false -Dxephyr=false -Dxvfb=false -Ddmx=false'
  artifacts:
    paths:
      - _inst

build:
  extends:
    - .fdo.distribution-image@debian
  stage: build
  script:
    - export INSTDIR="$PWD/_inst"
    - export PKG_CONFIG_PATH=$(find $INSTDIR/ -name '*.pc' -printf "%h:")
    - meson "$MESON_BUILDDIR"
    - ninja -C "$MESON_BUILDDIR"