mirror of
https://github.com/falcosecurity/falco.git
synced 2026-04-04 11:02:16 +00:00
Co-authored-by: Lorenzo Fontana <lo@linux.com> Signed-off-by: Leonardo Di Donato <leodidonato@gmail.com>
96 lines
2.7 KiB
YAML
96 lines
2.7 KiB
YAML
version: 2
|
|
jobs:
|
|
# Build using ubuntu LTS
|
|
# This build is dynamic, most dependencies are taken from the OS
|
|
"build/ubuntu-bionic":
|
|
docker:
|
|
- image: ubuntu:bionic
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Update base image
|
|
command: apt update -y
|
|
- run:
|
|
name: Install dependencies
|
|
command: apt install libssl-dev libyaml-dev libncurses-dev libc-ares-dev libprotobuf-dev protobuf-compiler libjq-dev libyaml-cpp-dev libgrpc++-dev protobuf-compiler-grpc rpm linux-headers-$(uname -r) libelf-dev cmake build-essential libcurl4-openssl-dev -y
|
|
- run:
|
|
name: Prepare project
|
|
command: |
|
|
mkdir build
|
|
pushd build
|
|
cmake ..
|
|
popd
|
|
- run:
|
|
name: Build
|
|
command: |
|
|
pushd build
|
|
make -j4 all
|
|
popd
|
|
- run:
|
|
name: Run unit tests
|
|
command: |
|
|
pushd build
|
|
make tests
|
|
popd
|
|
# Build using our own builder base image using centos 7
|
|
# This build is static, dependencies are bundled in the falco binary
|
|
"build/centos7":
|
|
docker:
|
|
- image: falcosecurity/falco-builder:latest
|
|
environment:
|
|
BUILD_TYPE: "release"
|
|
steps:
|
|
- checkout:
|
|
path: /source/falco
|
|
- run:
|
|
name: Prepare project
|
|
command: /usr/bin/entrypoint cmake
|
|
- run:
|
|
name: Build
|
|
command: /usr/bin/entrypoint all
|
|
- run:
|
|
name: Run unit tests
|
|
command: /usr/bin/entrypoint tests
|
|
- run:
|
|
name: Build packages
|
|
command: /usr/bin/entrypoint package
|
|
- persist_to_workspace:
|
|
root: /
|
|
paths:
|
|
- build/release
|
|
- source
|
|
- run:
|
|
name: Prepare artifacts
|
|
command: |
|
|
mkdir -p /tmp/packages
|
|
cp /build/release/*.deb /tmp/packages
|
|
cp /build/release/*.tar.gz /tmp/packages
|
|
cp /build/release/*.rpm /tmp/packages
|
|
- store_artifacts:
|
|
path: /tmp/packages
|
|
destination: /packages
|
|
# Execute integration tests based on the build results coming from the "build/centos7" job
|
|
"tests/integration":
|
|
docker:
|
|
- image: falcosecurity/falco-tester:latest
|
|
environment:
|
|
SOURCE_DIR: "/source"
|
|
BUILD_DIR: "/build"
|
|
BUILD_TYPE: "release"
|
|
steps:
|
|
- setup_remote_docker
|
|
- attach_workspace:
|
|
at: /
|
|
- run:
|
|
name: Execute integration tests
|
|
command: /usr/bin/entrypoint test
|
|
workflows:
|
|
version: 2
|
|
build_and_test:
|
|
jobs:
|
|
- "build/ubuntu-bionic"
|
|
- "build/centos7"
|
|
- "tests/integration":
|
|
requires:
|
|
- "build/centos7"
|