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

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

include:
  - project: 'freedesktop/ci-templates'
    ref: *template_sha
    file: '/templates/debian.yml'
  - project: 'freedesktop/ci-templates'
    ref: *template_sha
    file: '/templates/ci-fairy.yml'
  - template: Security/SAST.gitlab-ci.yml

stages:
  - prep
  - install xorgproto
  - build
  - test
  - deploy

variables:
  FDO_DISTRIBUTION_TAG: '2023-10-13.0'  # change this to rebuild the images
  FDO_UPSTREAM_REPO: 'xorg/lib/libxi'
  FDO_DISTRIBUTION_VERSION: 'stable'
  FDO_DISTRIBUTION_PACKAGES: 'git ca-certificates meson g++ make xutils-dev autoconf automake libtool pkg-config xmlto xorg-sgml-doctools w3m xsltproc libx11-dev libxext-dev libxfixes-dev'

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

#
# Verify that commit messages are as expected
#
check-commits:
  extends:
    - .fdo.ci-fairy
  stage: prep
  script:
    - ci-fairy check-commits --junit-xml=results.xml
  except:
    - master@xorg/proto/xcbproto
  variables:
    GIT_DEPTH: 100
  artifacts:
    reports:
      junit: results.xml
  allow_failure: true

#
# Verify that the merge request has the allow-collaboration checkbox ticked
#
check-merge-request:
  extends:
    - .fdo.ci-fairy
  stage: deploy
  script:
    - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
  artifacts:
    when: on_failure
    reports:
      junit: results.xml
  allow_failure: true


#
# Build a container with the given tag and the packages pre-installed.
# This only happens if/when the tag changes, otherwise the existing image is
# re-used.
#
container-prep:
  extends:
    - .fdo.container-build@debian
  stage: prep
  variables:
    GIT_STRATEGY: none

xorgproto-build:
  extends:
    - .fdo.distribution-image@debian
  stage: install xorgproto
  script:
    - export INSTDIR="$PWD/_inst"
    - git clone --depth=1 https://gitlab.freedesktop.org/xorg/proto/xorgproto --branch=xorgproto-2021.4.99.2
    - pushd xorgproto > /dev/null
    - meson -Dprefix="$INSTDIR" _build
    - ninja -j${FDO_CI_CONCURRENT:-4} -C _build install
    - popd > /dev/null
  variables:
  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:")
    - autoreconf -fi
    - mkdir build
    - pushd build > /dev/null
    - ../configure
    - make all -j${FDO_CI_CONCURRENT:-4}
    - popd > /dev/null