File: coverage.yml

package info (click to toggle)
tang 15-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 468 kB
  • sloc: ansic: 1,079; sh: 439; makefile: 13
file content (67 lines) | stat: -rw-r--r-- 1,688 bytes parent folder | download | duplicates (2)
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
---
name: coverage

on:
  push:
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'

jobs:
  build:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        os:
          - ubuntu:latest
    steps:
      - uses: actions/checkout@v4

      - name: Show OS information
        run: cat /etc/os-release 2>/dev/null || echo /etc/os-release not available

      - name: Install build dependencies
        run: bash .github/workflows/install-dependencies

      - name: Build tang
        run: |
          mkdir -p build && cd build
          export ninja=$(command -v ninja)
          [ -z "${ninja}" ] && export ninja=$(command -v ninja-build)
          meson .. -Db_coverage=true || cat meson-logs/meson-log.txt >&2
          ${ninja}

      - name: Run tests
        run: |
          cd build
          meson test || cat meson-logs/testlog.txt >&2

      - name: Show full test logs
        run: |
          if [ -r build/meson-logs/testlog.txt ]; then
            cat build/meson-logs/testlog.txt >&2
          else
            echo "No test log available" >&2
          fi

      - name: Create coverage report
        run: |
          cd build
          export ninja=$(command -v ninja)
          [ -z "${ninja}" ] && export ninja=$(command -v ninja-build)
          gcovr -r .. -f ../src -f src/ -e ../tests -e tests -x coverage.xml

      - uses: codecov/codecov-action@v3
        with:
          file: build/coverage.xml
          fail_ci_if_error: true # optional (default = false)
          verbose: true # optional (default = false)

    container:
      image: ${{matrix.os}}
      env:
        DISTRO: ${{matrix.os}}

# vim:set ts=2 sw=2 et: