Skip to content

Update CHANGELOG

Update CHANGELOG #97

Workflow file for this run

name: Embedded Builds
on: [push, pull_request]
# Cancel previous run if a new one is started
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
llvm_clang:
runs-on: ubuntu-latest
strategy:
matrix:
env:
- TYPE: Release
NAME: vanilla_llvm12+clang+glibc2.27
LLVM_VERSION: 12
STATIC_LINKING: ON
STATIC_LIBC: OFF
EMBED_BUILD_LLVM: OFF
EMBED_USE_LLVM: ON
RUN_ALL_TESTS: 1
RUNTIME_TEST_DISABLE: builtin.cgroup,probe.kprobe_offset_fail_size,usdt.usdt probes - file based semaphore activation multi process,usdt.usdt probes - attach to fully specified probe all pids
TOOLS_TEST_OLDVERSION: tcpdrop.bt
TOOLS_TEST_DISABLE: biosnoop.bt
BASE: bionic
DISTRO: ubuntu-glibc
VENDOR_GTEST: ON
ENABLE_SKB_OUTPUT: ON
- TYPE: Release
NAME: vanilla_llvm12+clang+glibc2.31
LLVM_VERSION: 12
STATIC_LINKING: ON
STATIC_LIBC: OFF
EMBED_BUILD_LLVM: OFF
EMBED_USE_LLVM: ON
RUN_ALL_TESTS: 1
RUNTIME_TEST_DISABLE: builtin.cgroup,probe.kprobe_offset_fail_size,other.string compare map lookup,call.skboutput,usdt.usdt probes - file based semaphore activation multi process,usdt.usdt probes - attach to fully specified probe all pids
TOOLS_TEST_OLDVERSION: tcpdrop.bt
TOOLS_TEST_DISABLE: biosnoop.bt
BASE: focal
DISTRO: ubuntu-glibc
VENDOR_GTEST: ON
ENABLE_SKB_OUTPUT: OFF
- TYPE: Debug
NAME: alpine
LLVM_VERSION: 10
STATIC_LINKING: ON
STATIC_LIBC: ON
EMBED_BUILD_LLVM: OFF
RUN_ALL_TESTS: 1
RUNTIME_TEST_DISABLE: json-output.join_delim,other.string compare map lookup,probe.kprobe_offset_fail_size,probe.uprobe_library,usdt.usdt probes - attach to fully specified probe of child,usdt.usdt probes - all probes by wildcard and file with child,usdt.usdt probes - attach to probe by wildcard and file with child,usdt.usdt probes - attach to probes by wildcard file with child,usdt.usdt probes - attach to probe on multiple files by wildcard,usdt.usdt probes - attach to probe with probe builtin and args by file with child,usdt.usdt probes - list probes by pid in separate mountns,usdt.usdt sized arguments,usdt.usdt - list probes by file with wildcarded probe type,usdt.usdt probes - attach to fully specified probe all pids,uprobe.uprobes - list probes by pid; uprobes only,uprobe.uprobes - list probes by pid in separate mount namespace,other.positional pointer arithmetics,call.skboutput,usdt.usdt probes - file based semaphore activation multi process,probe.uprobe_zero_size,probe.uprobe_zero_size_unsafe
TOOLS_TEST_DISABLE: biosnoop.bt,gethostlatency.bt,threadsnoop.bt,ssllatency.bt,sslsnoop.bt
TOOLS_TEST_OLDVERSION: tcpdrop.bt
BASE: alpine
DISTRO: alpine
ALPINE_VERSION: 3.12
VENDOR_GTEST: ON
ENABLE_SKB_OUTPUT: OFF
- TYPE: Release
NAME: alpine
LLVM_VERSION: 10
STATIC_LINKING: ON
STATIC_LIBC: ON
EMBED_BUILD_LLVM: OFF
RUN_ALL_TESTS: 1
RUNTIME_TEST_DISABLE: other.string compare map lookup,probe.kprobe_offset_fail_size,probe.uprobe_library,usdt.usdt probes - attach to fully specified probe of child,usdt.usdt probes - all probes by wildcard and file with child,usdt.usdt probes - attach to probe by wildcard and file with child,usdt.usdt probes - attach to probes by wildcard file with child,usdt.usdt probes - attach to probe on multiple files by wildcard,usdt.usdt probes - attach to probe with probe builtin and args by file with child,usdt.usdt probes - list probes by pid in separate mountns,usdt.usdt sized arguments,usdt.usdt - list probes by file with wildcarded probe type,usdt.usdt probes - attach to fully specified probe all pids,uprobe.uprobes - list probes by pid; uprobes only,uprobe.uprobes - list probes by pid in separate mount namespace,other.positional pointer arithmetics,call.skboutput,usdt.usdt probes - file based semaphore activation multi process,probe.uprobe_zero_size,probe.uprobe_zero_size_unsafe
TOOLS_TEST_DISABLE: biosnoop.bt,gethostlatency.bt,threadsnoop.bt,ssllatency.bt,sslsnoop.bt
TOOLS_TEST_OLDVERSION: tcpdrop.bt
BASE: alpine
DISTRO: alpine
ALPINE_VERSION: 3.12
VENDOR_GTEST: ON
ENABLE_SKB_OUTPUT: OFF
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Build docker container
run: >
docker build
-t bpftrace-embedded-${{ matrix.env['BASE'] }}
-f docker/Dockerfile.${{ matrix.env['DISTRO'] }}
--build-arg BASE=${{ matrix.env['BASE'] }}
--build-arg LLVM_VERSION=${{ matrix.env['LLVM_VERSION'] }}
--build-arg ALPINE_VERSION=${{ matrix.env['ALPINE_VERSION'] }}
docker/
- name: bpftrace embedded build
env: ${{ matrix.env }}
run: >
docker run --privileged
-v $(pwd):$(pwd)
-w $(pwd)
-v /sys/kernel/debug:/sys/kernel/debug:rw
-v /lib/modules:/lib/modules:ro
-v /usr/src:/usr/src:ro
-e LLVM_VERSION=${LLVM_VERSION}
-e STATIC_LINKING=${STATIC_LINKING}
-e STATIC_LIBC=${STATIC_LIBC}
-e EMBED_USE_LLVM=${EMBED_USE_LLVM}
-e EMBED_BUILD_LLVM=${EMBED_BUILD_LLVM}
-e RUN_ALL_TESTS=${RUN_ALL_TESTS}
-e CMAKE_EXTRA_FLAGS="${CMAKE_EXTRA_FLAGS}"
-e TEST_GROUPS_DISABLE="${TEST_GROUPS_DISABLE}"
-e RUNTIME_TEST_DISABLE="${RUNTIME_TEST_DISABLE}"
-e VENDOR_GTEST="${VENDOR_GTEST}"
-e TOOLS_TEST_OLDVERSION="$TOOLS_TEST_OLDVERSION"
-e TOOLS_TEST_DISABLE="$TOOLS_TEST_DISABLE"
-e ENABLE_SKB_OUTPUT="$ENABLE_SKB_OUTPUT"
bpftrace-embedded-${{ matrix.env['BASE'] }}
$(pwd)/build-embedded ${TYPE}
-j`nproc`
- name: Check linked libs
env: ${{ matrix.env }}
run: >
docker run --privileged
-v $(pwd):$(pwd)
-w $(pwd)
--entrypoint /bin/bash
bpftrace-embedded-${{ matrix.env['BASE'] }}
-c "[[ -f $(pwd)/build-embedded/src/bpftrace ]] && ! readelf --dynamic $(pwd)/build-embedded/src/bpftrace | grep NEEDED | grep -v 'libm\|libc\|ld-linux\|libpthread\|libdl\|librt\.so'"
- name: Strip artifacts
env: ${{ matrix.env }}
if: matrix.env['TYPE'] == 'Release'
run: >
docker run --privileged
-v $(pwd):$(pwd)
-w $(pwd)
--entrypoint /bin/bash
bpftrace-embedded-${{ matrix.env['BASE'] }}
-c "strip --keep-symbol BEGIN_trigger --keep-symbol END_trigger $(pwd)/build-embedded/src/bpftrace"
- name: Report size
env: ${{ matrix.env }}
run: >
docker run --privileged
-v $(pwd):$(pwd)
-w $(pwd)
--entrypoint /bin/bash
bpftrace-embedded-${{ matrix.env['BASE'] }}
-c "echo SIZE: ; du -sh $(pwd)/build-embedded/src/bpftrace"
- uses: actions/upload-artifact@v1
with:
name: bpftrace-${{ matrix.env['TYPE'] }}-${{ matrix.env['NAME'] }}
path: build-embedded/src/bpftrace
- uses: actions/upload-artifact@v1
with:
name: bpftrace_test-${{ matrix.env['TYPE'] }}-${{ matrix.env['NAME'] }}
path: build-embedded/tests/bpftrace_test
- name: Authenticate with docker registry
if: >
matrix.env['TYPE'] == 'Release' &&
(github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) &&
github.repository == 'iovisor/bpftrace'
env:
QUAY_TOKEN: ${{ secrets.QUAY_TOKEN }}
run: ./docker/scripts/auth.sh ${{ github.repository }}
- name: Package docker image and push to quay.io
if: >
matrix.env['TYPE'] == 'Release' &&
(github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) &&
github.repository == 'iovisor/bpftrace'
run: >
./docker/scripts/push.sh
${{ github.repository }}
${{ github.ref }}
${{ github.sha }}
${{ matrix.env['NAME'] }}
${{ matrix.env['EDGE'] }}