nvmeblk.bt: add tool support to check block alignment #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'] }} |