From 33e0670cd7632ca162a8790ba801375dd207f842 Mon Sep 17 00:00:00 2001 From: Federico Di Pierro Date: Fri, 20 Sep 2024 16:05:44 +0200 Subject: [PATCH] new(ci): add a zig build job plus a composite action to setup zig. Signed-off-by: Federico Di Pierro --- .github/actions/install-zig/action.yml | 47 ++++++++++++++++++++++++++ .github/workflows/ci.yml | 18 +++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 .github/actions/install-zig/action.yml diff --git a/.github/actions/install-zig/action.yml b/.github/actions/install-zig/action.yml new file mode 100644 index 0000000000..e7eb11f98b --- /dev/null +++ b/.github/actions/install-zig/action.yml @@ -0,0 +1,47 @@ +name: 'install-zig' +description: 'Install zig compiler and make it available in PATH.' + +inputs: + sudo: + description: 'Specify a sudo command. Put it empty when sudo is not available.' + required: false + default: 'sudo' + +outputs: + zig_path: + description: "Path of installed zig, automatically added to GITHUB_PATH" + value: ${{ steps.zig.outputs.zig-path }} + +runs: + using: "composite" + steps: + - name: Install zig + shell: bash + id: zig + env: + ZIG_VERSION: '0.14.0-dev.1588+2111f4c38' + run: | + curl -L -o zig.tar.xz https://ziglang.org/builds/zig-linux-$(uname -m)-${ZIG_VERSION}.tar.xz + tar -xvf zig.tar.xz + + cat > zig-linux-$(uname -m)-${ZIG_VERSION}/zig-cc < zig-linux-$(uname -m)-${ZIG_VERSION}/zig-c++ <> $GITHUB_PATH + echo "CC=zig-cc" >> $GITHUB_ENV + echo "CXX=zig-c++" >> $GITHUB_ENV + echo "AR=zig ar" >> $GITHUB_ENV + echo "RANLIB=zig ranlib" >> $GITHUB_ENV + + echo "zig-path=/usr/local/zig/zig-linux-$(uname -m)-${ZIG_VERSION}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2957148a63..cc86b46df6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: arch: [amd64, arm64] - name: [system_deps, bundled_deps, system_deps_minimal, sanitizers] + name: [system_deps, bundled_deps, system_deps_minimal, sanitizers, zig] include: - name: system_deps cmake_opts: -DBUILD_WARNINGS_AS_ERRORS=On -DBUILD_BPF=On -DUSE_BUNDLED_DEPS=False @@ -31,6 +31,8 @@ jobs: cmake_opts: -DBUILD_WARNINGS_AS_ERRORS=On -DUSE_BUNDLED_DEPS=False -DMINIMAL_BUILD=True - name: sanitizers cmake_opts: -DUSE_ASAN=On -DUSE_UBSAN=On -DUSE_BUNDLED_DEPS=False + - name: zig + cmake_opts: -DUSE_BUNDLED_DEPS=True container: image: debian:buster steps: @@ -60,6 +62,7 @@ jobs: git config --global --add safe.directory $GITHUB_WORKSPACE - name: Build and test ๐Ÿ—๏ธ๐Ÿงช + if: matrix.name != 'zig' env: UBSAN_OPTIONS: print_stacktrace=1 run: | @@ -67,6 +70,19 @@ jobs: cd build && cmake ${{ matrix.cmake_opts }} -DENABLE_THREAD_POOL=ON ../ KERNELDIR=/lib/modules/$(ls /lib/modules)/build make -j4 make run-unit-tests + + - name: Install zig + if: matrix.name == 'zig' + uses: ./.github/actions/install-zig + with: + sudo: '' + + - name: Build sinsp-example + if: matrix.name == 'zig' + run: | + mkdir -p build + cd build && cmake ${{ matrix.cmake_opts }} -DENABLE_THREAD_POOL=ON ../ + make sinsp-example -j4 build-libs-linux-amd64-static: name: build-libs-linux-amd64-static ๐ŸŽƒ