fix ci #259
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: Build and run all integrated tests (examples) | |
on: | |
push: | |
branches: "*" | |
pull_request: | |
branches: "*" | |
jobs: | |
build-runtime: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Install dependencies | |
run: | | |
sudo apt-get install binutils-dev libboost1.74-all-dev libelf-dev zlib1g-dev libyaml-cpp-dev gcc-12 g++-12 llvm | |
- name: Build and install runtime | |
run: | | |
CC=gcc-12 CXX=g++-12 make release -j | |
- name: Build and install CLI | |
run: | | |
cd tools/cli-rs | |
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-unknown-linux-gnu | |
mkdir -p ~/.bpftime | |
cp ./target/x86_64-unknown-linux-gnu/release/bpftime ~/.bpftime | |
- name: Upload build results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: runtime-package | |
path: | | |
/home/runner/.bpftime | |
build-and-test: | |
runs-on: ubuntu-22.04 | |
needs: [build-runtime] | |
strategy: | |
fail-fast: true | |
matrix: | |
examples: | |
- path: libbpf-tools/opensnoop | |
executable: ./opensnoop | |
victim: ./victim | |
syscall_trace: true | |
expected_str: " 0 test.txt" | |
- path: libbpf-tools/statsnoop | |
executable: ./statsnoop | |
victim: ./victim | |
syscall_trace: true | |
expected_str: "victim 0 0 /sys" | |
- path: malloc | |
executable: ./malloc | |
victim: ./victim | |
syscall_trace: false | |
expected_str: "malloc calls: " | |
- path: opensnoop | |
executable: ./opensnoop | |
victim: ./victim | |
syscall_trace: true | |
expected_str: " 0 test.txt" | |
- path: sslsniff | |
executable: ./sslsniff | |
victim: /bin/wget https://www.google.com | |
syscall_trace: false | |
expected_str: "----- DATA -----" | |
- path: libbpf-tools/bashreadline | |
executable: ./readline | |
victim: /bin/bash | |
syscall_trace: false | |
expected_str: "info" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Download prebuilt runtime | |
uses: actions/download-artifact@v3 | |
with: | |
name: runtime-package | |
path: /home/runner/.bpftime | |
- name: Set permissions | |
run: | | |
chmod +x ~/.bpftime/* | |
- name: Show downloaded artifacts | |
run: | | |
ls ~/.bpftime | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y zlib1g-dev libelf-dev | |
- name: Build test assets | |
run: | | |
make -C example/${{matrix.examples.path}} -j | |
- name: Test CLI - show help | |
run: | | |
export PATH=$PATH:~/.bpftime | |
bpftime --help | |
- name: Test CLI - attach by running (syscall_trace) | |
if: matrix.examples.syscall_trace | |
shell: "sudo /bin/bash -e {0}" | |
run: | | |
cd example/${{matrix.examples.path}} | |
sudo -E python3 /home/runner/work/bpftime/bpftime/.github/script/run_example.py ${{matrix.examples.executable}} "${{matrix.examples.victim}}" "${{matrix.examples.expected_str}}" "/home/runner/.bpftime/bpftime -i /home/runner/.bpftime" 1 | |
- name: Test CLI - attach by running (uprobe) | |
if: '!matrix.examples.syscall_trace' | |
shell: "sudo /bin/bash -e {0}" | |
run: | | |
cd example/${{matrix.examples.path}} | |
sudo -E python3 /home/runner/work/bpftime/bpftime/.github/script/run_example.py ${{matrix.examples.executable}} "${{matrix.examples.victim}}" "${{matrix.examples.expected_str}}" "/home/runner/.bpftime/bpftime -i /home/runner/.bpftime" 0 |