summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: a519504a81c57f0c094e1f3c0f72a6d8643e2c03 (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
stages:
  - build
  - analysis
  - docs
  - deploy

# Common variables
variables:
  COMMON_MESON_FLAGS: "--fatal-meson-warnings --werror"
  MESON_TEST_TIMEOUT_MULTIPLIER: 2
  FEDORA_IMAGE: registry.gitlab.gnome.org/gnome/pango/fedora:v3

linux-fedora:
  image: $FEDORA_IMAGE
  stage: build
  needs: []
  variables:
    EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
  script:
    - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS}
            _build
    - meson _build
    - ninja -C _build
    - .gitlab-ci/run-tests.sh _build
  artifacts:
    when: always
    reports:
      junit:
        - "${CI_PROJECT_DIR}/_build/report.xml"
    name: "gtk-${CI_COMMIT_REF_NAME}"
    paths:
      - "${CI_PROJECT_DIR}/_build/meson-logs"
      - "${CI_PROJECT_DIR}/_build/report.xml"
      - "${CI_PROJECT_DIR}/_build/hello.png"
      - "${CI_PROJECT_DIR}/_build/fontlist.txt"

asan-build:
  image: $FEDORA_IMAGE
  tags: [ asan ]
  stage: analysis
  needs: []
  variables:
  script:
    - CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build
    - ninja -C _build
    - .gitlab-ci/run-tests.sh _build
  allow_failure: true
  artifacts:
    when: always
    reports:
      junit:
        - "${CI_PROJECT_DIR}/_build/report.xml"
    name: "gtk-${CI_COMMIT_REF_NAME}"
    paths:
      - "${CI_PROJECT_DIR}/_build/meson-logs"
      - "${CI_PROJECT_DIR}/_build/report.xml"
      - "${CI_PROJECT_DIR}/_build/hello.png"
      - "${CI_PROJECT_DIR}/_build/fontlist.txt"

msys2-mingw64:
  stage: build
  needs: []
  tags:
    - win32-ps
  variables:
    MSYSTEM: "MINGW64"
    CHERE_INVOKING: "yes"
  script:
    - C:\msys64\usr\bin\pacman --noconfirm -Syyuu
    - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
    - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/render-msys2.sh"
    - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/list-msys2.sh"
  artifacts:
    name: "${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
    when: always
    paths:
      - "${CI_PROJECT_DIR}/_build/meson-logs"
      - "${CI_PROJECT_DIR}/_build/hello.png"
      - "${CI_PROJECT_DIR}/_build/fontlist.txt"

macos:
  stage: build
  tags:
    - macos
  only:
    - master
    - merge_requests
  needs: []
  before_script:
    - pip3 install --user meson==0.56
    - pip3 install --user ninja
    - export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
  script:
    - meson -Dintrospection=disabled
            -Dcpp_std=c++11
            -Dpixman:tests=disabled
            -Dharfbuzz:coretext=enabled
            _build
    - ninja -C _build
  artifacts:
    when: always
    paths:
      - "${CI_PROJECT_DIR}/_build/meson-logs"

reference:
  image: $FEDORA_IMAGE
  stage: docs
  needs: []
  variables:
    EXTRA_MESON_FLAGS: ""
  script:
    - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true _build
    - ninja -C _build pango-doc
    - mkdir -p _reference/
    - mv _build/docs/html/ _reference/
  artifacts:
    paths:
      - _reference

pages:
  stage: deploy
  needs: ['reference']
  script:
    - mv _reference/ public/
  artifacts:
    paths:
      - public
  only:
    - master