summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: e889c49814da931f0b3b06248871f0e008e392f5 (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
variables:
  MAKEFLAGS: "-j10"
  VERBOSE: 1
  PACMAN_OPTS: --needed --noconfirm --cachedir .pkg-cache

cache:
  key: pkgs-v1
  paths:
    # For some reason Gitlab CI only supports storing cache/artifacts in a path relative to the build directory
    - .pkg-cache

.arch-test:
  image: archlinux/base
  before_script:
    - >
      pacman -Syu $PACMAN_OPTS
      base-devel git
      gpgme libarchive curl
      python
      fakeroot fakechroot
      meson

arch:
  extends: .arch-test
  script:
    - meson build
    - ninja -C build
    - fakechroot meson test -C build

arch-debug:
  extends: .arch-test
  script:
    - meson --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

arch-docs:
  extends: .arch-test
  script:
    - pacman -Syu $PACMAN_OPTS asciidoc
    - meson -Ddoc=enabled build
    - ninja -C build

arch-clang:
  extends: .arch-test
  script:
    - pacman -Syu $PACMAN_OPTS clang
    - CC=clang meson build
    - ninja -C build
    - fakechroot meson test -C build

arch-valgrind:
  extends: .arch-test
  script:
    - pacman -Syu --needed --noconfirm valgrind
    - meson build
    - ninja -C build
    - PACTEST_VALGRIND=1 fakechroot meson test -C build

arch-nettle:
  extends: .arch-test
  script:
    - meson -Dcrypto=nettle --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

arch-no-gpg:
  extends: .arch-test
  script:
    - meson -Dgpgme=disabled --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

arch-no-curl:
  extends: .arch-test
  script:
    - meson -Dcurl=disabled --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

arch-no-nls:
  extends: .arch-test
  script:
    - meson -Di18n=false --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

debian:
  image: debian:bullseye
  cache: {}
  before_script:
    - apt update
    - >
      apt -y install --no-install-recommends
      git pkg-config meson gcc libtool
      libgpgme-dev libarchive-dev libcurl4-openssl-dev libssl-dev curl
      gettext python3 python3-setuptools dash gawk ca-certificates
      fakeroot fakechroot
  script:
    - meson --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

fedora:
  image: fedora
  cache: {}
  before_script:
    - >
      dnf -y install
      git findutils patch sed
      meson gcc libtool
      gpgme-devel libarchive-devel libcurl-devel openssl-devel gettext-devel
      asciidoc python3 dash gawk
      fakeroot fakechroot
      perl-Module-Load-Conditional
  script:
    - meson --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build