Skip to content

Revert "fix(ebpf): fix symbol name on error" #4795

Revert "fix(ebpf): fix symbol name on error"

Revert "fix(ebpf): fix symbol name on error" #4795

Workflow file for this run

#
# When a PR is opened or updated: Run Tracee Tests
#
name: PR
on:
workflow_dispatch: {}
pull_request:
branches:
- main
paths:
- "!docs/**"
- "!deploy/**"
- "!packaging/**"
- "!**.yaml"
- "!**.md"
- "!**.txt"
- "!**.conf"
# override previous rules:
- "go.mod"
- "go.sum"
- "**.c"
- "**.h"
- "**.go"
- "**.sh"
- "**/pr.yaml"
concurrency:
group: ${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
#
# kernel version tests (arm64: https://github.com/aquasecurity/tracee/issues/2821)
TESTS: "TRC-102 TRC-103 TRC-104 TRC-105 TRC-107 TRC-1010 TRC-1014 TRC-1016 TRC-1018 TRC-1022"
ARM64_TESTS: "TRC-102 TRC-103 TRC-104 TRC-105 TRC-107 TRC-1010 TRC-1014 TRC-1016 TRC-1018"
RHEL_ARM64_TESTS: "TRC-102 TRC-103 TRC-104 TRC-105 TRC-107 TRC-1010 TRC-1014 TRC-1016 TRC-1018 TRC-1022"
# network tests
NETTESTS: "IPv4 IPv6 TCP UDP ICMP ICMPv6 DNS HTTP"
# instrumentation tests
INSTTESTS: "VFS_WRITE FILE_MODIFICATION SECURITY_INODE_RENAME BPF_ATTACH CONTAINERS_DATA_SOURCE"
jobs:
#
# CODE VERIFICATION
#
verify-analyze-code:
name: Verify and Analyze Code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Lint
run: |
if test -z "$(gofmt -l .)"; then
echo "Congrats! There is nothing to fix."
else
echo "The following lines should be fixed."
gofmt -s -d .
exit 1
fi
- name: Lint (Revive)
run: |
make check-lint
- name: Check Code Style
run: |
make check-fmt
- name: Check Golang Vet
run: |
make check-vet
- name: Check with StaticCheck
run: |
make check-staticcheck
- name: Check with errcheck
run: |
make check-err
#
# SIGNATURES CODE VERIFICATION
#
verify-signatures:
name: Verify Signatures
needs:
- verify-analyze-code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Build Signatures
run: |
make signatures
- name: Test Signatures
run: |
make test-signatures
#
# TOOLS BUILD VERIFICATION
#
verify-tools:
name: Verify Other Tools
needs:
- verify-analyze-code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Build Tracee Benchmark Tool
run: |
make clean
make tracee-bench
- name: Build Tracee GPT Docs Tool
run: |
make clean
make tracee-gptdocs
- name: Build E2E Network Signatures
run: |
make clean
make e2e-net-signatures
- name: Build E2E Instrumentation Signatures
run: |
make clean
make e2e-inst-signatures
#
# CODE TESTS
#
unit-tests:
name: Unit Tests
needs:
- verify-analyze-code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Run Unit Tests
run: |
make test-unit
#
# INTEGRATION TESTS
#
integration-tests:
name: Integration Tests
needs:
- verify-analyze-code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Run Integration Tests
run: |
sudo env "PATH=$PATH" make test-integration
#
# PERFORMANCE TESTS
#
performance-tests:
name: Performance Tests
needs:
- verify-analyze-code
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
- name: Install Dependencies
uses: ./.github/actions/build-dependencies
- name: Run Performance Tests
run: |
sudo env "PATH=$PATH" make test-performance
#
#----
# JENKINS RUNNERS
#
# TODO: Turn these jobs into a matrix, extracing ${{ matrix.name }} as the step name.
# This is currently feasible by simply adding more labels (github-self-hosted_...) into a
# matrix declaration but the step names would be the same as the labels and it would be
# very hard to understand what is being tested. There might be a possible mitigation,
# by using something like:
#
# jobs:
# test:
# name: Run ${{ join(matrix.*, ' - ') }} - ${{ github.event_name }}
#
# but this needs more tests.
#
#----
#
# ALMA v4.18
#
alma418-core:
name: RHEL8 4.18 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0763bdb83bba5e638_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
alma418-arm64-core:
name: RHEL8 4.18 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-06152079b6b8d1f26_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.RHEL_ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# AMZN2 5.10 (jammy userland with AMZN2 kernel)
#
amzn2510-core:
name: AMZN2 5.10 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0b9c1568cd5551408_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
amzn2510-arm64-core:
name: AMZN2 5.10 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-071a53e3ad06e6a7e_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.RHEL_ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# GKE 5.4 (jammy userland with GKE kernel)
#
gke54-core:
name: GKE 5.4 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-07803dec079f9dab8_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# GKE 5.10 (jammy userland with GKE kernel)
#
gke510-core:
name: GKE 5.10 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-03ca8e4a64be4e6e2_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# GKE 5.15 (jammy userland with GKE kernel)
#
gke515-core:
name: GKE 5.15 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0e71c360809862bd7_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
gke515-arm64-core:
name: GKE 5.15 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0b66222a60f8f97be_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.RHEL_ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# FOCAL v5.4
#
focal54-core:
name: Focal 5.4 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0d9d35323406a6cad_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
focal54-arm64-core:
name: Focal 5.4 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0a241eeae02842052_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# FOCAL v5.13
#
focal513-core:
name: Focal 5.13 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0c86a42b0f61bd86e_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
focal513-arm64-core:
name: Focal 5.13 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-07de8512322c4a33a_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# JAMMY v5.15
#
jammy515-core:
name: Jammy 5.15 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-02f0ed24d636fa1a7_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
jammy515-arm64-core:
name: Jammy 5.15 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0b6d16ce9f5576b40_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# JAMMY v5.19
#
jammy519-core:
name: Jammy 5.19 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-02ce72d6cd652cbbd_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
# ARM64
jammy519-arm64-core:
name: Jammy 5.19 ARM64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-07271263d87a0e883_${{ github.event.number }}-${{ github.run_id }}_arm64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
TESTS="${{ env.ARM64_TESTS }}" ./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# JAMMY v6.1
#
jammy6127-core:
name: Jammy 6.1.27 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-0469948ef83c039e9_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh
#
# JAMMY v6.3
#
jammy6301-core:
name: Jammy 6.3.1 X64
needs:
- unit-tests
- verify-signatures
- verify-tools
env:
HOME: "/tmp/root"
GOPATH: "/tmp/go"
GOCACHE: "/tmp/go-cache"
GOROOT: "/usr/local/go"
runs-on:
[
"github-self-hosted_ami-05bc39f8670e0c226_${{ github.event.number }}-${{ github.run_id }}_x64c",
]
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
submodules: true
- name: "Kernel"
run: |
./tests/e2e-kernel-test.sh
- name: "Network"
run: |
./tests/e2e-net-test.sh
- name: "Instrumentation"
run: |
./tests/e2e-inst-test.sh