summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/cfl/.github/workflows/build.yaml
blob: 8f3ad73910eeb977028630f4661e733ddfe837a6 (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
name: Build PR(s) and master branch.
on:
  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]
    steps:
      - uses: actions/checkout@v3
      - 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-msys2:
    name: Build sources on MSYS2 for ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest, windows-2019]
    steps:
      - uses: actions/checkout@v3
      - name: Get dependencies w/ chocolatey
        uses: crazy-max/ghaction-chocolatey@v2
        with:
          args: install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'
      - uses: msys2/setup-msys2@v2
        with:
          update: true
          msystem: UCRT64
          path-type: inherit
          install: >-
            mingw-w64-ucrt-x86_64-gcc
      - name: Build on ${{ matrix.os }} with MSYS2
        shell: msys2 {0}
        run: |
          cmake -G "MinGW Makefiles" -DCFL_TESTS=On .
          cmake --build .
      - 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
    steps:
      - name: Set up base image dependencies
        run: |
          yum -y update
          yum install -y ca-certificates cmake gcc gcc-c++ 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

      - uses: actions/checkout@v3

      - name: Run compilation
        run: |
          cmake3 -DCFL_DEV=on .
          make

  build-debian:
    name: Debian Buster build to confirm no issues once used downstream
    runs-on: ubuntu-latest
    container: debian:buster
    steps:
      - name: Set up base image dependencies
        run: |
          apt-get update
          apt-get install -y build-essential cmake make
        shell: bash

      - uses: actions/checkout@v3

      - name: Run compilation
        run: |
          cmake -DCFL_DEV=on .
          make

  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 ]
    steps:
      - uses: actions/checkout@v3
      - 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 -DCFL_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 ]
    steps:
      - uses: actions/checkout@v3
      - name: Build on ${{ matrix.os }} with ${{ matrix.compiler }}
        run: |
          echo "CC = $CC, CXX = $CXX"
          cmake -DCFL_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: '-DCFL_TESTS=On -DCFL_DEV=on .'
          build_command: make all