summaryrefslogtreecommitdiffstats
path: root/fluent-bit/.github/workflows/unit-tests.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/.github/workflows/unit-tests.yaml')
-rw-r--r--fluent-bit/.github/workflows/unit-tests.yaml125
1 files changed, 125 insertions, 0 deletions
diff --git a/fluent-bit/.github/workflows/unit-tests.yaml b/fluent-bit/.github/workflows/unit-tests.yaml
new file mode 100644
index 00000000..282879c5
--- /dev/null
+++ b/fluent-bit/.github/workflows/unit-tests.yaml
@@ -0,0 +1,125 @@
+name: Run unit tests
+on:
+ push:
+ branches:
+ - master
+ - 2.0
+ - 1.9
+ - 1.8
+ pull_request:
+ paths-ignore:
+ - '.github/**'
+ - 'dockerfiles/**'
+ - 'docker_compose/**'
+ - 'packaging/**'
+ - '.gitignore'
+ - 'appveyor.yml'
+ - '**.sh'
+ - 'examples/**'
+ branches:
+ - master
+ - 2.0
+ - 1.9
+ - 1.8
+ types: [opened, reopened, synchronize]
+ workflow_dispatch:
+
+jobs:
+ run-ubuntu-unit-tests:
+ runs-on: ubuntu-20.04
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ flb_option:
+ - "-DFLB_JEMALLOC=On"
+ - "-DFLB_JEMALLOC=Off"
+ - "-DFLB_SMALL=On"
+ - "-DSANITIZE_ADDRESS=On"
+ - "-DSANITIZE_UNDEFINED=On"
+ - "-DFLB_COVERAGE=On"
+ - "-DFLB_SANITIZE_MEMORY=On"
+ - "-DFLB_SANITIZE_THREAD=On"
+ compiler:
+ - gcc
+ - clang
+ exclude:
+ - flb_option: "-DFLB_COVERAGE=On"
+ compiler: clang
+ permissions:
+ contents: read
+ steps:
+ - name: Setup environment
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y gcc-7 g++-7 clang-6.0 libsystemd-dev gcovr libyaml-dev
+ sudo ln -s /usr/bin/llvm-symbolizer-6.0 /usr/bin/llvm-symbolizer || true
+
+ - uses: actions/checkout@v4
+
+ - uses: actions/checkout@v4
+ with:
+ repository: calyptia/fluent-bit-ci
+ path: ci
+
+ - name: ${{ matrix.compiler }} - ${{ matrix.flb_option }}
+ run: |
+ echo "CC = $CC, CXX = $CXX, FLB_OPT = $FLB_OPT"
+ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 90
+ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 90
+ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 90
+ sudo usermod -a -G systemd-journal $(id -un)
+ sudo -E su -p $(id -un) -c "PATH=$PATH ci/scripts/run-unit-tests.sh"
+ env:
+ CC: ${{ matrix.compiler }}
+ CXX: ${{ matrix.compiler }}
+ FLB_OPT: ${{ matrix.flb_option }}
+
+ run-macos-unit-tests:
+ # We chain this after Linux one as there are costs and restrictions associated
+ needs:
+ - run-ubuntu-unit-tests
+ runs-on: macos-latest
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ flb_option:
+ - "-DFLB_JEMALLOC=Off"
+ - "-DFLB_SANITIZE_MEMORY=On"
+ - "-DFLB_SANITIZE_THREAD=On"
+ permissions:
+ contents: read
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/checkout@v4
+ with:
+ repository: calyptia/fluent-bit-ci
+ path: ci
+
+ - name: ${{ matrix.flb_option }}
+ run: |
+ echo "CC = $CC, CXX = $CXX, FLB_OPT = $FLB_OPT"
+ brew update
+ brew install bison flex openssl || true
+ ci/scripts/run-unit-tests.sh
+ env:
+ CC: gcc
+ CXX: g++
+ FLB_OPT: ${{ matrix.flb_option }}
+
+ # Required check looks at this so do not remove
+ run-all-unit-tests:
+ if: always()
+ runs-on: ubuntu-latest
+ name: Unit tests (matrix)
+ permissions:
+ contents: none
+ needs:
+ - run-macos-unit-tests
+ - run-ubuntu-unit-tests
+ steps:
+ - name: Check build matrix status
+ # Ignore MacOS failures
+ if: ${{ needs.run-ubuntu-unit-tests.result != 'success' }}
+ run: exit 1