summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: e3af28f71d9f739bc6d8536bbec396129ee846a4 (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
130
131
132
variables:
  MAKEFLAGS: "-j10"
  VERBOSE: 1

default:
  after_script:
    - build-aux/print-failed-test-output build/meson-logs/testlog.json

.arch-test:
  image: archlinux:base-devel
  before_script:
    - >
      pacman -Syu --needed --noconfirm
      git
      gpgme libarchive curl
      python
      fakeroot fakechroot
      meson
  artifacts:
      when: always
      paths:
        - build/meson-logs/meson-log.txt

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

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

arch-docs:
  extends: .arch-test
  script:
    - pacman -Syu --needed --noconfirm asciidoc
    - meson setup -Ddoc=enabled build
    - ninja -C build

arch-clang:
  extends: .arch-test
  script:
    - pacman -Syu --needed --noconfirm clang
    - CC=clang meson setup build
    - ninja -C build
    - fakechroot meson test -C build

#arch-valgrind:
#  extends: .arch-test
#  script:
#    - pacman -Syu --needed --noconfirm valgrind
#    - pacman -U --noconfirm https://geo.mirror.pkgbuild.com/core-debug/os/x86_64/glibc-debug-$(pacman -S --print-format %v glibc)-x86_64.pkg.tar.zst
#    - meson setup build
#    - ninja -C build
#    - PACTEST_VALGRIND=1 fakechroot meson test -C build

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

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

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

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

debian:
  image: debian:bookworm
  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 setup --buildtype=debug build
    - ninja -C build
    - fakechroot meson test -C build

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

pages:
  extends: .arch-test
  script:
    - pacman -Syu --needed --noconfirm asciidoc
    - meson setup -Ddoc=enabled build
    - ninja -C build html
  artifacts:
    paths:
      - build/doc
  publish: build/doc
  rules:
    - if: $CI_COMMIT_BRANCH == "release/6.1.x"