summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/cmetrics/.github/workflows/build.yaml
blob: 88bfb3fa3d5f6a3c4592804bb31c6aafa4f2fc24 (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: Build PR(s) and master branch.
on:
  workflow_dispatch:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
    types: [opened, reopened, synchronize]
jobs:
  build-windows:
    name: Build sources on amd64 for ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest, windows-2019]
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - name: Build on ${{ matrix.os }} with vs-2019
        run: |
          .\scripts\win_build.bat
      - name: Run unit tests.
        run: |
          ctest --rerun-failed --output-on-failure -C Debug --test-dir .\tests\

  build-centos:
    name: CentOS 7 build to confirm no issues once used downstream
    runs-on: ubuntu-latest
    container: centos:7
    permissions:
      contents: read
    steps:
      - name: Set up base image dependencies
        run: |
          yum -y update && \
          yum install -y ca-certificates cmake gcc gcc-c++ git make wget && \
          wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
          rpm -ivh epel-release-latest-7.noarch.rpm && \
          yum install -y cmake3
        shell: bash

      - name: Clone repo with submodules (1.8.3 version of Git)
        run: |
          git clone --recursive https://github.com/calyptia/cmetrics.git
        shell: bash

      - name: Run compilation
        run: |
          cmake3 -DCMT_TESTS=on -DCMT_DEV=on .
          make
        shell: bash
        working-directory: cmetrics

  build-unix-arm64:
    name: Build sources on arm64 for ${{ matrix.os }} - ${{ matrix.compiler }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        compiler: [ gcc, clang ]
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - name: Build on ${{ matrix.os }} with ${{ matrix.compiler }}
        uses: uraimo/run-on-arch-action@v2.3.0
        with:
          arch: aarch64
          distro: ubuntu20.04
          run: |
            apt-get update && \
            apt-get install -y --no-install-recommends \
            build-essential \
            cmake \
            file \
            make
            export CC=${{ env.compiler }}
            cmake -DCMT_TESTS=On .
            make all
            CTEST_OUTPUT_ON_FAILURE=1 make test
        env:
          CC: ${{ matrix.compiler }}

  build-unix-amd64:
    name: Build sources on amd64 for ${{ matrix.os }} - ${{ matrix.compiler }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest]
        compiler: [ gcc, clang ]
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - name: Build on ${{ matrix.os }} with ${{ matrix.compiler }}
        run: |
          echo "CC = $CC, CXX = $CXX"
          cmake -DCMT_TESTS=On .
          make all
          CTEST_OUTPUT_ON_FAILURE=1 make test
        env:
          CC: ${{ matrix.compiler }}

  build-analysis-tests:
    name: Build with various code analysis tools
    strategy:
      fail-fast: false
      matrix:
        preset:
          - clang-sanitize-address
          - clang-sanitize-memory
          - clang-sanitize-undefined
          - clang-sanitize-dataflow
          - clang-sanitize-safe-stack
          - valgrind
    permissions:
      contents: read
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - uses: docker://lpenz/ghaction-cmake:0.19
        with:
          preset: ${{ matrix.preset }}
          # dependencies_debian: ''
          cmakeflags: '-DCMT_TESTS=On -DCMT_DEV=on .'
          build_command: make all