summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: f297e7a8e1e3f348834241821f23056cacb3cdcc (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
# SPDX-License-Identifier: GPL-2.0-only

stages:
    - check

.pacman_install:
    before_script:
        # NOTE: Install latest archlinux-keyring before upgrading system. In the
        # future this should not be needed anymore when we can guarantee a valid
        # keyring for longer:
        # https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/4
        - echo -e "\e[0Ksection_start:`date +%s`:pacman[collapsed=true]\r\e[0KInstalling dependencies"
        - pacman -Sy --needed --noconfirm archlinux-keyring
        - pacman --noconfirm -Syu --needed bash-bats bash-bats-assert bash-bats-support diffutils git jq kcov lzop make shellcheck
        - echo -e "\e[0Ksection_end:`date +%s`:pacman\r\e[0K"

check:
    stage: check
    extends: .pacman_install
    script:
        - make shellcheck

test:
    stage: check
    extends: .pacman_install
    script:
        - make --silent check BATS_ARGS='-F junit' > bats-report.xml
    artifacts:
        reports:
            junit: bats-report.xml
    tags:
        - vm

coverage:
    stage: check
    extends: .pacman_install
    coverage: '/Percent covered\s+\d+\.\d+/'
    allow_failure: true
    script:
        - make coverage
        - jq -r '. |
            ["Percent covered", .percent_covered],
            ["Covered lines", .covered_lines],
            ["Total lines", .total_lines],
            ["Percent low", .percent_low],
            ["Percent high", .percent_high] | @tsv' coverage/bats.*/coverage.json
    artifacts:
        reports:
            coverage_report:
                coverage_format: cobertura
                path: coverage/bats.*/cobertura.xml
    tags:
        - vm