summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: b21e089433572fff662cbee60e9648ab6c50ac60 (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
image: debian:sid

variables:
  FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1

before_script:
  - apt update -qq
  - apt install -qq -y eatmydata
  - eatmydata apt -P pkg.dpkg.author-release build-dep -qq -y .
  - ./autogen

# Test whether the release can be done.
dist-check:
  stage: test
  script:
    - ./configure
    - make -j$(nproc) distcheck

# Test whether the author checks pass.
author-check:
  stage: test
  script:
    - eatmydata apt -P pkg.dpkg.author-testing build-dep -qq -y .
    - ./configure
    - make -j$(nproc) authorcheck
           TESTSUITEFLAGS=--verbose TEST_PARALLEL=$(nproc)

# Test whether the sanitized unit tests pass.
unit-tests:
  stage: test
  script:
    - ./configure --enable-compiler-sanitizer
    - make -j$(nproc) -C lib check
           TESTSUITEFLAGS=--verbose TEST_PARALLEL=$(nproc)

# Test whether the unit tests pass on a VPATH build.
vpath-tests:
  stage: test
  script:
    - mkdir -p build-tree
    - cd build-tree
    - ../configure
    - make -j$(nproc) check
           TESTSUITEFLAGS=--verbose TEST_PARALLEL=$(nproc)

# Test whether the unit tests pass with minimal library dependencies.
minlib-tests:
  stage: test
  script:
    - ./configure
        --without-liblzma
        --without-libz
        --without-libz-ng
        --without-libzstd
        --without-libbz2
        --without-libselinux
    - make -j$(nproc) check
           TESTSUITEFLAGS=--verbose TEST_PARALLEL=$(nproc)

# Test whether we can build the shared library.
shlib-tests:
  stage: test
  script:
    - AUTHOR_TESTING=1 ./configure --enable-shared
    - make -j$(nproc) check
           TESTSUITEFLAGS=--verbose TEST_PARALLEL=$(nproc)

# Test whether the functional tests pass.
func-tests:
  stage: test
  script:
    - ./configure
    - make
    - eatmydata make -C tests test