summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: b913dcda2b67ae4a923ddde64f72f8d10378c0b0 (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
variables:
  GIT_SUBMODULE_STRATEGY: normal

stages:
- test
- cross_distro

.test_template: &distro_test
  script:
    - meson _build .
    - cd _build
    - ninja test

flatpak:master:
    image: registry.gitlab.com/alatiera/gnome-nightly-oci/gnome-master:latest
    stage: test
    script:
    - flatpak-builder --stop-at=nautilus app build-aux/flatpak/org.gnome.Nautilus.json
    # Make sure to keep this in sync with the Flatpak manifest, all arguments
    # are passed except the config-args because we build it ourselves
    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json meson --prefix=/app --libdir=/app/lib -Dprofile=development _build
    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build install
    - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gnome.Nautilus.json
    # Make a Flatpak Nautilus bundle for people to test
    - flatpak build-bundle repo nautilus-dev.flatpak --runtime-repo=https://sdk.gnome.org/gnome-nightly.flatpakrepo org.gnome.NautilusDevel
    # Run automatic tests inside the Flatpak env
    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build test
    artifacts:
        paths:
        - nautilus-dev.flatpak
        - _build/meson-logs/meson-log.txt
        - _build/meson-logs/testlog.txt
        expire_in: 2 days
    cache:
        paths:
        - .flatpak-builder/cache

fedora:rawhide:
    image: fedora:rawhide
    stage: cross_distro
    script:
    - dnf install -y 'dnf-command(builddep)' redhat-rpm-config
    - dnf builddep -y nautilus
    <<: *distro_test
    only:
    - schedules
    - web
    - tags

ubuntu:devel:
    image: ubuntu:devel
    stage: cross_distro
    before_script:
    # Ubuntu requires running update to fetch metadata and find packges
    - apt update
    - apt install -y gcc meson gettext itstool git libgtk-3-dev
                     libgnome-autoar-0-dev libgnome-desktop-3-dev
                     gobject-introspection libxml2-dev
                     libtracker-control-2.0-dev desktop-file-utils libgexiv2-dev
                     libgail-3-dev libtracker-sparql-2.0-dev
                     libgirepository1.0-dev
    <<: *distro_test
    only:
    - schedules
    - web
    - tags

opensuse:tumbleweed:
    image: opensuse:tumbleweed
    stage: cross_distro
    before_script:
    - zypper install -y gcc meson gettext-runtime gettext-tools itstool git
                        gtk3-devel gnome-autoar-devel libgnome-desktop-3-devel
                        gobject-introspection-devel libxml2-devel tracker-devel
                        desktop-file-utils libgexiv2-devel
    <<: *distro_test
    only:
    - schedules
    - web
    - tags