Skip to content

Commit 15227af

Browse files
theihoranakryiko
authored andcommitted
ci: setup bpftrace via separate script
Optionally build bpftrace from source. Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
1 parent c4b5dc2 commit 15227af

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

.github/scripts/install-bpftrace.sh

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
set -x -euo pipefail
4+
5+
BPFTRACE_VERSION=${BPFTRACE_VERSION:-0.22.1}
6+
BUILD_BPFTRACE=${BUILD_BPFTRACE:-}
7+
8+
BIN_DIR=/usr/local/bin
9+
sudo mkdir -p $BIN_DIR
10+
11+
if [[ -n "$BUILD_BPFTRACE" ]]; then
12+
# see https://github.com/bpftrace/bpftrace/blob/master/docker/Dockerfile.ubuntu
13+
sudo apt-get install -y \
14+
asciidoctor binutils-dev bison build-essential clang cmake flex git libbpf-dev \
15+
libbpfcc-dev libcereal-dev libelf-dev libiberty-dev libpcap-dev llvm-dev liblldb-dev \
16+
libclang-dev systemtap-sdt-dev zlib1g-dev
17+
git clone --depth 1 -b v${BPFTRACE_VERSION} https://github.com/bpftrace/bpftrace
18+
cd bpftrace/src
19+
cmake -B build -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=$(llvm-config --prefix)/lib/cmake/llvm
20+
make -C build -j$(nproc)
21+
cd -
22+
sudo mv bpftrace/src/build/bpftrace $BIN_DIR/bpftrace
23+
else # download AppImage
24+
sudo curl -L -o $BIN_DIR/bpftrace https://github.com/bpftrace/bpftrace/releases/download/v${BPFTRACE_VERSION}/bpftrace
25+
fi
26+
27+
sudo chmod +x $BIN_DIR/bpftrace
28+
29+
# mount tracefs to avoid warnings from bpftrace
30+
grep -q tracefs /proc/mounts || mount -t tracefs tracefs /sys/kernel/tracing
31+
32+
# sanity check
33+
bpftrace --version
34+

.github/scripts/setup.sh

+2-9
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
set -euo pipefail
44

55
# Assume sudo in this script
6+
GITHUB_WORKSPACE=${GITHUB_WORKSPACE:-$(pwd)}
67
BPFTRACE_VERSION=${BPFTRACE_VERSION:-0.22.1}
78
GCC_VERSION=${GCC_VERSION:-13}
89

@@ -14,13 +15,5 @@ apt-get install -y curl file gawk libfuse2t64 make sudo
1415
# Install CC
1516
apt-get install -y gcc-${GCC_VERSION} g++-${GCC_VERSION}
1617

17-
# Download bpftrace release
18-
BIN_DIR=/usr/local/bin
19-
mkdir -p $BIN_DIR
20-
curl -L -o bpftrace https://github.com/bpftrace/bpftrace/releases/download/v${BPFTRACE_VERSION}/bpftrace
21-
chmod +x bpftrace
22-
mv bpftrace $BIN_DIR
23-
bpftrace --version
18+
${GITHUB_WORKSPACE}/.github/scripts/install-bpftrace.sh
2419

25-
# mount tracefs to avoid warnings from bpftrace
26-
grep -q tracefs /proc/mounts || mount -t tracefs tracefs /sys/kernel/tracing

0 commit comments

Comments
 (0)