summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: c2ab622cab19d3e47a2b4fe75cd78f1693b3ce44 (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
stages:
  - test

# Note that using Fedora 28 triggered some weird compiler bug for me:
#
#   GISCAN   Tracker_C-2.0.gir
#   annobin: Tracker_2.0.c: Error: plugin built for compiler version (8.0.1) but run with compiler version (8.1.1)
#   cc1: error: fail to initialize plugin /usr/lib/gcc/x86_64-redhat-linux/8/plugin/annobin.so
#   Traceback (most recent call last):
#     File "/usr/lib64/python3.6/distutils/unixccompiler.py", line 127, in _compile
#       extra_postargs)
#     File "/usr/lib64/python3.6/distutils/ccompiler.py", line 909, in spawn
#       spawn(cmd, dry_run=self.dry_run)
#     File "/usr/lib64/python3.6/distutils/spawn.py", line 36, in spawn
#       _spawn_posix(cmd, search_path, dry_run=dry_run)
#     File "/usr/lib64/python3.6/distutils/spawn.py", line 159, in _spawn_posix
#       % (cmd, exit_status))
#   distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1
#
test-autotools-fedora27:
  stage: test
  image: fedora:27

  before_script:
    # This takes a long time, we could prebuild a Docker image that already
    # contains this stuff instead, and use that.
    - dnf install -y 'dnf-command(builddep)' dbus-devel dbus-x11 libseccomp-devel make redhat-rpm-config
    - dnf builddep -y tracker

    # This shouldn't be needed, but currently is.
    #
    # Some of the tests depend on the GSettings schemas being installed.
    #
    # Some of the tests also seem to interact with the session-wide Tracker
    # instance!
    - dnf install -y tracker

    # tests/libtracker-common/tracker-file-utils-test will fail if run as root,
    # as it makes assertions about a path being unwritable. Better to test as a
    # normal user in any case.
    - useradd -Um tracker
    - chown -R tracker:tracker .

  script:
    - su tracker -c './autogen.sh --disable-functional-tests --prefix=/usr'
    - su tracker -c 'make -j'
    - LANG=en_US.UTF8 VERBOSE=1 su tracker -c 'dbus-launch make check'

test-meson-fedora27:
  stage: test
  image: fedora:27

  before_script:
    # This takes a long time, we could prebuild a Docker image that already
    # contains this stuff instead, and use that.
    - dnf install -y 'dnf-command(builddep)' dbus-devel dbus-x11 libseccomp-devel meson redhat-rpm-config
    - dnf builddep -y tracker

    # This shouldn't be needed, but currently is.
    #
    # Some of the tests depend on the GSettings schemas being installed.
    #
    # Some of the tests also seem to interact with the session-wide Tracker
    # instance!
    - dnf install -y tracker

    # tests/libtracker-common/tracker-file-utils-test will fail if run as root,
    # as it makes assertions about a path being unwritable. Better to test as a
    # normal user in any case.
    - useradd -Um tracker
    - chown -R tracker:tracker .

  script:
    - su tracker -c 'mkdir build'
    - su tracker -c 'cd build; meson .. -Dfunctional_tests=false'
    - su tracker -c 'cd build; ninja'
    - su tracker -c 'cd build; LANG=en_US.UTF8 dbus-launch meson test --print-errorlogs'