Skip to content

Enforce clang-format on C files #306

Enforce clang-format on C files

Enforce clang-format on C files #306

Workflow file for this run

name: CI
on:
push:
tags:
- v*
branches:
- master
pull_request:
jobs:
build-ebpf-exporter-x86_64:
name: Build ebpf_exporter (x86_64)
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch with tags to have the build version attached
- name: Build libbpf and ebpf_exporter
run: |
docker buildx build --progress plain --tag ebpf_exporter:builder --target builder .
id=$(docker create ebpf_exporter:builder)
docker cp $id:/build/ebpf_exporter/ebpf_exporter ebpf_exporter.x86_64
docker cp $id:/build/libbpf.tar.gz libbpf.x86_64.tar.gz
- name: Upload libbpf.tar.gz
uses: actions/upload-artifact@v3
with:
name: libbpf.x86_64.tar.gz
path: libbpf.x86_64.tar.gz
- name: Upload ebpf_exporter
uses: actions/upload-artifact@v3
with:
name: ebpf_exporter.x86_64
path: ebpf_exporter.x86_64
build-ebpf-exporter-aarch64:
name: Build ebpf_exporter (aarch64 emulated, be patient)
runs-on: ubuntu-20.04
steps:
- uses: dbhi/qus/action@main
with:
targets: aarch64
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch with tags to have the build version attached
- name: Build ebpf_exporter
run: |
docker buildx build --progress plain --tag ebpf_exporter:builder --target builder --platform linux/arm64 .
id=$(docker create ebpf_exporter:builder)
docker cp $id:/build/ebpf_exporter/ebpf_exporter ebpf_exporter.aarch64
docker cp $id:/build/libbpf.tar.gz libbpf.aarch64.tar.gz
- name: Upload libbpf.tar.gz
uses: actions/upload-artifact@v3
with:
name: libbpf.aarch64.tar.gz
path: libbpf.aarch64.tar.gz
- name: Upload ebpf_exporter
uses: actions/upload-artifact@v3
with:
name: ebpf_exporter.aarch64
path: ebpf_exporter.aarch64
test-ebpf-exporter-x86_64:
name: Test ebpf_exporter (x86_64)
needs: build-ebpf-exporter-x86_64
runs-on: ubuntu-20.04
steps:
- uses: actions/setup-go@v3
with:
go-version: ^1.20
- uses: actions/checkout@v3
- name: Download libbpf.tar.gz
uses: actions/download-artifact@v3
with:
name: libbpf.x86_64.tar.gz
- name: Install libbpf
run: sudo tar -C / -xvvf libbpf.x86_64.tar.gz
- name: Install libelf-dev
run: sudo apt-get install -y libelf-dev
- name: Build
run: make build
- name: Test
run: make test
lint-ebpf-exporter-x86_64:
name: Lint ebpf_exporter (x86_64)
needs: build-ebpf-exporter-x86_64
runs-on: ubuntu-20.04
steps:
- uses: actions/setup-go@v3
with:
go-version: ^1.20
- uses: actions/checkout@v3
- name: Download libbpf.tar.gz
uses: actions/download-artifact@v3
with:
name: libbpf.x86_64.tar.gz
- name: Install libbpf
run: sudo tar -C / -xvvf libbpf.x86_64.tar.gz
- name: Install libelf-dev
run: sudo apt-get install -y libelf-dev
- name: Check vendored dependencies
run: go mod verify
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.51.2
env:
CGO_LDFLAGS: "-l bpf"
build-examples-x86_64:
name: Build examples (x86_64)
needs: build-ebpf-exporter-x86_64
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Download libbpf.tar.gz
uses: actions/download-artifact@v3
with:
name: libbpf.x86_64.tar.gz
- name: Install libbpf
run: sudo tar -C / -xvvf libbpf.x86_64.tar.gz
- name: Install libelf-dev
run: sudo apt-get install -y libelf-dev
- name: Install clang
run: sudo apt-get install -y clang
- name: Build benchmark bpf probes
run: make -j $(nproc) -C benchmark build
- name: Build example bpf probes
run: make -j $(nproc) -C examples build
clang-format:
name: Run clang-format check
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Install clang-format
run: sudo apt-get install -y clang-format make
- name: Run clang-format check
run: make clang-format-check