diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..d4953371 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,38 @@ +language: c +env: + - BUILD_TYPE=Debug + - BUILD_TYPE=Release +before_install: + - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + - sudo apt-get update +install: + - sudo apt-get --force-yes install g++-4.8 + - sudo apt-get install rpm linux-headers-$(uname -r) + - git clone https://github.com/draios/sysdig.git ../sysdig +before_script: + - export KERNELDIR=/lib/modules/$(ls /lib/modules | sort | head -1)/build +script: + - set -e + - export CC="gcc-4.8" + - export CXX="g++-4.8" + - wget https://s3.amazonaws.com/download.draios.com/dependencies/cmake-3.3.2.tar.gz + - tar -xzf cmake-3.3.2.tar.gz + - cd cmake-3.3.2 + - ./bootstrap --prefix=/usr + - make + - sudo make install + - cd .. + - mkdir build + - cd build + - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE + - make VERBOSE=1 + - make package + - cd .. + - sudo test/falco_trace_regression.sh build/userspace/falco/falco +notifications: + webhooks: + urls: +# - https://webhooks.gitter.im/e/fdbc2356fb0ea2f15033 + on_success: change + on_failure: always + on_start: never \ No newline at end of file diff --git a/README.md b/README.md index e582da56..b98aaf02 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ for an early release. On the other hand performance is still a work in progress. On busy hosts and/or with large rule sets, you may see the current version of falco using high CPU. Expect big improvements in coming releases. +Dev Branch: [![Build Status](https://travis-ci.org/draios/falco.svg?branch=dev)](https://travis-ci.org/draios/falco)
+Master Branch: [![Build Status](https://travis-ci.org/draios/falco.svg?branch=master)](https://travis-ci.org/draios/falco) + ####Table of Contents - [Overview](#overview) diff --git a/test/falco_trace_regression.sh b/test/falco_trace_regression.sh new file mode 100755 index 00000000..a4b3498c --- /dev/null +++ b/test/falco_trace_regression.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -eu + +SCRIPT=$(readlink -f $0) +BASEDIR=$(dirname $SCRIPT) + +FALCO=$1 +BUILDDIR=$(dirname $FALCO) + +# Load the built kernel module by hand +insmod $BUILDDIR/../../driver/sysdig-probe.ko + +# For now, simply ensure that falco can run without errors. +FALCO_CMDLINE="$FALCO -c $BASEDIR/../falco.yaml -r $BASEDIR/../rules/falco_rules.yaml" +echo "Running falco: $FALCO_CMDLINE" +$FALCO_CMDLINE > $BASEDIR/falco.log 2>&1 & +FALCO_PID=$! +echo "Falco started, pid $FALCO_PID" +sleep 10 +if kill -0 $FALCO_PID > /dev/null 2>&1; then + echo "Falco ran successfully" + kill $FALCO_PID + ret=0 +else + echo "Falco did not start successfully. Full program output:" + cat $BASEDIR/falco.log + ret=1 +fi + +exit $ret