name: CI Build on: pull_request: branches: [master] workflow_dispatch: # Checks if any concurrent jobs under the same pull request or branch are being executed # NOTE: this will cancel every workflow that is being ran against a PR as group is just the github ref (without the workflow name) concurrency: group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build-minimal: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - name: Update base image run: sudo apt update -y - name: Install build dependencies run: sudo DEBIAN_FRONTEND=noninteractive apt install libjq-dev libyaml-cpp-dev libelf-dev cmake build-essential git -y - name: Prepare project run: | mkdir build-minimal pushd build-minimal cmake -DMINIMAL_BUILD=On -DBUILD_BPF=Off -DBUILD_DRIVER=Off -DCMAKE_BUILD_TYPE=Release -DBUILD_FALCO_UNIT_TESTS=On .. popd - name: Build run: | pushd build-minimal make -j4 all popd - name: Run unit tests run: | pushd build-minimal sudo ./unit_tests/falco_unit_tests popd build-ubuntu-focal: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - name: Update base image run: sudo apt update -y - name: Install build dependencies run: sudo DEBIAN_FRONTEND=noninteractive apt install libssl-dev libyaml-dev libc-ares-dev libprotobuf-dev protobuf-compiler libjq-dev libyaml-cpp-dev libgrpc++-dev protobuf-compiler-grpc rpm libelf-dev cmake build-essential libcurl4-openssl-dev linux-headers-$(uname -r) clang llvm git -y - name: Prepare project run: | mkdir build pushd build cmake -DBUILD_BPF=On -DCMAKE_BUILD_TYPE=Release -DBUILD_FALCO_UNIT_TESTS=On .. popd - name: Build run: | pushd build KERNELDIR=/lib/modules/$(uname -r)/build make -j4 all popd - name: Run unit tests run: | pushd build sudo ./unit_tests/falco_unit_tests popd build-ubuntu-focal-debug: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - name: Update base image run: sudo apt update -y - name: Install build dependencies run: sudo DEBIAN_FRONTEND=noninteractive apt install libssl-dev libyaml-dev libc-ares-dev libprotobuf-dev protobuf-compiler libjq-dev libyaml-cpp-dev libgrpc++-dev protobuf-compiler-grpc rpm libelf-dev cmake build-essential libcurl4-openssl-dev linux-headers-$(uname -r) clang llvm git -y - name: Prepare project run: | mkdir build pushd build cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BPF=On -DBUILD_FALCO_UNIT_TESTS=On .. popd - name: Build run: | pushd build KERNELDIR=/lib/modules/$(uname -r)/build make -j4 all popd - name: Run unit tests run: | pushd build sudo ./unit_tests/falco_unit_tests popd