diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index c5b0973a..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,159 +0,0 @@ -version: 2.1 -jobs: - "build-arm64": - machine: - enabled: true - image: ubuntu-2204:2022.10.2 - resource_class: arm.large - steps: - - # Install dependencies to build the modern BPF probe skeleton. - - run: - name: Install deps ⛓️ - command: | - sudo apt update - sudo apt install -y --no-install-recommends ca-certificates cmake build-essential clang-14 git pkg-config autoconf automake libelf-dev - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 90 - sudo update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-14 90 - git clone https://github.com/libbpf/bpftool.git --branch v7.0.0 --single-branch - cd bpftool - git submodule update --init - cd src && sudo make install - - # Path to the source code - - checkout: - path: /tmp/source-arm64/falco - - # Build the skeleton - - run: - name: Build modern BPF skeleton 🐝 - command: | - mkdir -p /tmp/source-arm64/falco/skeleton-build - cd /tmp/source-arm64/falco/skeleton-build && cmake -DUSE_BUNDLED_DEPS=ON -DBUILD_FALCO_MODERN_BPF=ON -DCREATE_TEST_TARGETS=Off ../ - make ProbeSkeleton - - # Build the Falco packages (tar, deb, rpm) inside the centos7 builder. - # This dockerfile returns as output: - # - the build directory. (under /tmp/${DEST_BUILD_DIR}) - # - the 3 packages: tar, deb, rpm. (under /tmp/packages) - - run: - name: Build Falco packages 🏗️ - command: | - FALCO_VERSION=$(cat /tmp/source-arm64/falco/skeleton-build/userspace/falco/config_falco.h | grep 'FALCO_VERSION ' | cut -d' ' -f3 | sed -e 's/^"//' -e 's/"$//') - DOCKER_BUILDKIT=1 docker build -f /tmp/source-arm64/falco/docker/builder/modern-falco-builder.Dockerfile --output type=local,dest=/tmp --build-arg CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_DEPS=On -DFALCO_ETC_DIR=/etc/falco -DBUILD_FALCO_MODERN_BPF=ON -DMODERN_BPF_SKEL_DIR=/source/skeleton-build/skel_dir -DBUILD_DRIVER=Off -DBUILD_BPF=Off -DFALCO_VERSION=${FALCO_VERSION}" --build-arg DEST_BUILD_DIR=/build-arm64/release /tmp/source-arm64/falco - - - store_artifacts: - path: /tmp/packages - destination: /packages - - - persist_to_workspace: - root: /tmp - paths: - - build-arm64/release - - source-arm64 - - # Build a statically linked Falco release binary using musl - # This build is 100% static, there are no host dependencies - "build-musl": - docker: - - image: alpine:3.17 - resource_class: large - steps: - - checkout: - path: /source-static/falco - - run: - name: Update base image - command: apk update - - run: - name: Install build dependencies - command: apk add g++ gcc cmake make git bash perl linux-headers autoconf automake m4 libtool elfutils-dev libelf-static patch binutils bpftool clang - - run: - name: Prepare project - command: | - mkdir -p /build-static/release - cd /build-static/release - cmake -DCPACK_GENERATOR=TGZ -DBUILD_BPF=Off -DBUILD_DRIVER=Off -DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_DEPS=On -DUSE_BUNDLED_LIBELF=Off -DBUILD_LIBSCAP_MODERN_BPF=ON -DMUSL_OPTIMIZED_BUILD=On -DFALCO_ETC_DIR=/etc/falco /source-static/falco - - run: - name: Build - command: | - cd /build-static/release - make -j6 all - - run: - name: Package - command: | - cd /build-static/release - make -j6 package - - run: - name: Prepare artifacts - command: | - mkdir -p /tmp/packages - cp /build-static/release/*.tar.gz /tmp/packages - - store_artifacts: - path: /tmp/packages - destination: /packages - - persist_to_workspace: - root: / - paths: - - build-static/release - - source-static - - # This build is static, dependencies are bundled in the Falco binary - "build-centos7": - machine: - enabled: true - image: ubuntu-2204:2022.10.2 - resource_class: large - steps: - - # Install dependencies to build the modern BPF probe skeleton. - - run: - name: Install deps ⛓️ - command: | - sudo apt update - sudo apt install -y --no-install-recommends ca-certificates cmake build-essential clang-14 git pkg-config autoconf automake libelf-dev - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 90 - sudo update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-14 90 - git clone https://github.com/libbpf/bpftool.git --branch v7.0.0 --single-branch - cd bpftool - git submodule update --init - cd src && sudo make install - - # Path for the source code - - checkout: - path: /tmp/source/falco - - - run: - name: Build modern BPF skeleton 🐝 - command: | - mkdir -p /tmp/source/falco/skeleton-build - cd /tmp/source/falco/skeleton-build && cmake -DUSE_BUNDLED_DEPS=ON -DBUILD_FALCO_MODERN_BPF=ON -DCREATE_TEST_TARGETS=Off ../ - make ProbeSkeleton - - # Build the Falco packages (tar, deb, rpm) inside the centos7 builder. - # This dockerfile returns as output: - # - the build directory. (under /tmp/${DEST_BUILD_DIR}) - # - the 3 packages: tar, deb, rpm. (under /tmp/packages) - - run: - name: Build Falco packages 🏗️ - command: | - FALCO_VERSION=$(cat /tmp/source/falco/skeleton-build/userspace/falco/config_falco.h | grep 'FALCO_VERSION ' | cut -d' ' -f3 | sed -e 's/^"//' -e 's/"$//') - DOCKER_BUILDKIT=1 docker build -f /tmp/source/falco/docker/builder/modern-falco-builder.Dockerfile --output type=local,dest=/tmp --build-arg CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_DEPS=On -DFALCO_ETC_DIR=/etc/falco -DBUILD_FALCO_MODERN_BPF=ON -DMODERN_BPF_SKEL_DIR=/source/skeleton-build/skel_dir -DBUILD_DRIVER=Off -DBUILD_BPF=Off -DFALCO_VERSION=${FALCO_VERSION}" --build-arg DEST_BUILD_DIR=/build/release /tmp/source/falco - - - store_artifacts: - path: /tmp/packages - destination: /packages - - - persist_to_workspace: - root: /tmp - paths: - - build/release - - source - -workflows: - version: 2.1 - build_and_test: - jobs: - - "build-musl" - - "build-arm64" - - "build-centos7" -