Skip to content

Commit

Permalink
Merge pull request #252 from BSWANG/main
Browse files Browse the repository at this point in the history
feat: support bpf prog check in ci
  • Loading branch information
jzwlqx authored Apr 16, 2024
2 parents ca01d07 + 1b3532c commit ea4ccd8
Show file tree
Hide file tree
Showing 31 changed files with 55 additions and 66 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,33 @@ jobs:
VALIDATE_MD: true
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

check-bpf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "17.0"
directory: ${{ runner.temp }}/llvm
- name: build-bpf
run: |
make generate-bpf-in-container
- name: check-bpf-update
run: |
for bpfobjfile in `git status --porcelain | awk '{print $2}'`; do
echo "check $bpfobjfile prog sections changes by remove .BTF debug section"
git show HEAD:$bpfobjfile > ${bpfobjfile}.old
if llvm-objdump --headers $bpfobjfile &>/dev/null; then
llvm-objcopy --remove-section '.BTF' ${bpfobjfile}.old
llvm-objcopy --remove-section '.BTF' $bpfobjfile
if ! diff ${bpfobjfile}.old $bpfobjfile; then
echo "$bpfobjfile changed; Please run 'make generate-bpf-in-container' and submit your changes"
exit 1
fi
fi
rm -f ${bpfobjfile}.old
done
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ build-btfhack:
build-webconsole:
cd webui && CGO_ENABLED=0 go build -o ../bin/webconsole -ldflags $(ldflags) .

.PHONY: generate-btf
generate-btf:
.PHONY: generate-bpf
generate-bpf:
go generate ./pkg/exporter/probe/...

.PHONY: generate-bpf-in-container
generate-bpf-in-container:
docker run -v $(PWD):/go/src/github.com/alibaba/kubeskoop --workdir /go/src/github.com/alibaba/kubeskoop kubeskoop/bpf-build:go121-clang17 go generate ./pkg/exporter/probe/...
Binary file modified pkg/exporter/probe/flow/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/flow/bpf_bpfel.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracebiolatency/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracebiolatency/bpf_bpfel.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracekernel/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracekernel/bpf_bpfeb.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracekernel/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracekernel/bpf_bpfel.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracenetiftxlatency/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracenetiftxlatency/bpf_bpfeb.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracenetiftxlatency/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracenetiftxlatency/bpf_bpfel.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracepacketloss/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracepacketloss/bpf_bpfel.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracesocketlatency/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracesocketlatency/bpf_bpfeb.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracesocketlatency/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracesocketlatency/bpf_bpfel.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracesoftirq/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracesoftirq/bpf_bpfel.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracetcpreset/bpf_bpfeb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracetcpreset/bpf_bpfeb.o
Binary file not shown.
10 changes: 2 additions & 8 deletions pkg/exporter/probe/tracetcpreset/bpf_bpfel.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified pkg/exporter/probe/tracetcpreset/bpf_bpfel.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracetcpretrans/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracetcpretrans/bpf_bpfel.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracevirtcmdlat/bpf_bpfeb.o
Binary file not shown.
Binary file modified pkg/exporter/probe/tracevirtcmdlat/bpf_bpfel.o
Binary file not shown.
3 changes: 3 additions & 0 deletions tools/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM alpine:3.19
RUN apk add clang=17.0.5-r0 llvm=17.0.5-r0 go=1.21.9-r0 make bash
RUN go install github.com/cilium/ebpf/cmd/bpf2go@latest

0 comments on commit ea4ccd8

Please sign in to comment.