Skip to content

Commit

Permalink
new(ci): add a zig build job plus a composite action to setup zig.
Browse files Browse the repository at this point in the history
Signed-off-by: Federico Di Pierro <nierro92@gmail.com>
  • Loading branch information
FedeDP committed Sep 20, 2024
1 parent b8c2d0d commit 33e0670
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 1 deletion.
47 changes: 47 additions & 0 deletions .github/actions/install-zig/action.yml
Original file line number Diff line number Diff line change
@@ -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 <<EOF
#!/bin/bash
exec zig cc -target $(uname -m)-linux-gnu.2.17 -mcpu=baseline "\$@"
EOF
chmod +x zig-linux-$(uname -m)-${ZIG_VERSION}/zig-cc
cat > zig-linux-$(uname -m)-${ZIG_VERSION}/zig-c++ <<EOF
#!/bin/bash
exec zig c++ -target $(uname -m)-linux-gnu.2.17 -mcpu=baseline "\$@"
EOF
chmod +x zig-linux-$(uname -m)-${ZIG_VERSION}/zig-c++
${{ inputs.sudo }} mkdir -p /usr/local/zig/
${{ inputs.sudo }} cp -R zig-linux-$(uname -m)-${ZIG_VERSION}/* /usr/local/zig/
echo "/usr/local/zig" >> $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
18 changes: 17 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -60,13 +62,27 @@ jobs:
git config --global --add safe.directory $GITHUB_WORKSPACE
- name: Build and test 🏗️🧪
if: matrix.name != 'zig'
env:
UBSAN_OPTIONS: print_stacktrace=1
run: |
mkdir -p build
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 🎃
Expand Down

0 comments on commit 33e0670

Please sign in to comment.