summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: 7ee01e4d7fd3016050f92b05b7d92fe544bdf12b (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
stages:
 - generate
 - deploy

.fedora.latest.template: &fedora_template
  image: fedora:latest
  before_script:
#in F34 rubygem-ronn got replaced by rubygem-ronn-ng
    - dnf install -y GeoIP-devel libmaxminddb-devel make meson ninja-build gcc libasan geolite2-{city,country} rubygem-ronn

fedora.nogeo:
  stage: generate
  <<: *fedora_template
  script:
    - meson setup build -Duse_maxminddb=disabled -Duse_geoip=disabled --buildtype=plain -Dc_args="-O2 -g -Werror"
    - ninja -C build
    - ninja -C build test
    - USE_MAXMIND=no USE_GEOIP=no USE_RUNTIME_LINKING=no CFLAGS="-O2 -g -Werror" make

fedora.geoip:
  stage: generate
  <<: *fedora_template
  script:
    - meson setup build -Duse_maxminddb=disabled -Duse_geoip=enabled -Duse_runtime_linking=disabled --buildtype=plain -Dc_args="-O2 -g -Werror"
    - ninja -C build
    - ninja -C build test
    - USE_GEOIP=yes USE_RUNTIME_LINKING=no USE_MAXMIND=no CFLAGS="-O2 -g -Werror" make

fedora.dyn_geoip:
  stage: generate
  <<: *fedora_template
  script:
    - meson setup build -Duse_maxminddb=disabled -Duse_geoip=enabled -Duse_runtime_linking=enabled --buildtype=plain -Dc_args="-O2 -g -Werror"
    - ninja -C build
    - ninja -C build test
    - USE_GEOIP=yes USE_RUNTIME_LINKING=yes USE_MAXMIND=no CFLAGS="-O2 -g -Werror" make

fedora.maxmind:
  stage: generate
  <<: *fedora_template
  script:
    - meson setup build -Duse_maxminddb=enabled -Duse_geoip=disabled -Duse_runtime_linking=disabled --buildtype=plain -Dc_args="-O2 -g -Werror"
    - ninja -C build
    - ninja -C build test
    - USE_GEOIP=no USE_RUNTIME_LINKING=no USE_MAXMIND=yes CFLAGS="-O2 -g -Werror" make

fedora.dyn_maxmind:
  stage: generate
  <<: *fedora_template
  script:
    - meson setup build -Duse_maxminddb=enabled -Duse_geoip=disabled -Duse_runtime_linking=enabled --buildtype=plain -Dc_args="-O2 -g -Werror"
    - ninja -C build
    - ninja -C build test
    - USE_GEOIP=no USE_RUNTIME_LINKING=yes USE_MAXMIND=yes CFLAGS="-O2 -g -Werror" make

fedora.dyn_maxmind_with_asan:
  stage: generate
  <<: *fedora_template
  script:
    - export ASAN_OPTIONS="detect_leaks=0"
    - meson setup build -Db_sanitize=address -Dwerror=true
    - ninja -C build test
    - ./build/ipcalc -g 217.31.205.50

# Generates coverage report
pages-test:
  stage: deploy
  <<: *fedora_template
  script:
    - dnf install -y lcov
    - meson setup build -Db_coverage=true -Duse_maxminddb=enabled -Duse_geoip=disabled -Duse_runtime_linking=enabled --buildtype=plain -Dc_args="-Og -g -Werror"
    - ninja -C build
    - ninja -C build test
    - ninja -C build coverage-html && mv build/meson-logs/coveragereport public


  tags:
  - shared
  except:
    - master

pages:
  stage: deploy
  <<: *fedora_template
  script:
    - dnf install -y lcov
    - meson setup build -Db_coverage=true -Duse_maxminddb=enabled -Duse_geoip=disabled -Duse_runtime_linking=enabled --buildtype=plain -Dc_args="-Og -g -Werror"
    - ninja -C build
    - ninja -C build test
    - ninja -C build coverage-html && mv build/meson-logs/coveragereport public
    - tests/run-coverage.sh
  tags:
  - shared
  coverage: '/coverage lines: \d+\.\d+/'
  artifacts:
    when: on_success
    paths:
    - public
  only:
    - master