Skip to content

fix(deps): update go dependencies #2526

fix(deps): update go dependencies

fix(deps): update go dependencies #2526

name: CI
on:
push:
branches: [main]
pull_request:
branches: ["**"]
permissions:
contents: read
jobs:
legal:
name: Check licenses of dependencies
runs-on: ubuntu-24.04
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up environment
uses: ./.github/workflows/env
- name: Check for changes in licenses of dependencies
run: |
make legal
if [ -n "$(git status --porcelain)" ]; then
echo "run \"make legal\"."
exit 1
fi
lint:
name: Lint (${{ matrix.target_arch }})
runs-on: ubuntu-24.04
strategy:
matrix:
target_arch: [amd64, arm64]
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up environment
uses: ./.github/workflows/env
- name: Get linter version
id: linter-version
run: (echo -n "version="; make linter-version) >> "$GITHUB_OUTPUT"
- name: linter
env:
GOARCH: ${{ matrix.target-arch }}
CGO_ENABLED: 1
run: |
sudo apt update
sudo apt install -y clang-format-17
make lint
test:
name: Test (${{ matrix.target_arch }})
runs-on: ubuntu-24.04
strategy:
matrix:
target_arch: [amd64, arm64]
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up environment
uses: ./.github/workflows/env
with:
skip_rust: true
- name: Cache coredump modules
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: tools/coredump/modulecache
key: coredumps-${{ matrix.target_arch }}-${{ hashFiles('tools/coredump/testdata/*/*.json') }}
restore-keys: |
coredumps-${{ matrix.target_arch }}
coredumps-
- name: Tests
run: make test TARGET_ARCH=${{ matrix.target_arch }}
rust-test:
name: Rust Tests (${{ matrix.target_arch }})
runs-on: ubuntu-24.04
strategy:
matrix:
target_arch: [amd64, arm64]
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up environment
uses: ./.github/workflows/env
- name: Tests
run: make rust-tests
check-binary-blobs:
name: Check for differences in the eBPF binary blobs
runs-on: ubuntu-24.04
container: otel/opentelemetry-ebpf-profiler-dev:latest@sha256:6ab9b5ff6c2a457be97a389887caf9f3cd5344f760fdab0101b9965236bbb2db
defaults:
run:
shell: bash --login {0}
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Hash binary blobs
run: |
sha256sum support/ebpf/tracer.ebpf.* > binary-blobs.hash
- name: Rebuild eBPF blobs
run: |
rm support/ebpf/tracer.ebpf.*
make amd64 -C support/ebpf
make arm64 -C support/ebpf
- name: Check for differences
run: |
if ! sha256sum --check binary-blobs.hash; then
echo "Please rebuild and commit the updated binary blobs."
exit 1
fi
- if: failure()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: binary-blobs
path: support/ebpf/tracer.ebpf.*
build-integration-test-binaries:
name: Build integration test binaries (${{ matrix.target_arch }})
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
matrix:
target_arch: [amd64, arm64]
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up environment
uses: ./.github/workflows/env
- name: Prepare integration test binaries for qemu tests
run: make integration-test-binaries TARGET_ARCH=${{ matrix.target_arch }}
- name: Upload integration test binaries
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: integration-test-binaries-${{ matrix.target_arch }}
path: support/*.test
coredump-test-macos:
name: Coredump tests (macOS)
runs-on: macos-latest
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Cache coredump modules
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: tools/coredump/modulecache
key: coredumps-arm64-${{ hashFiles('tools/coredump/testdata/*/*.json') }}
restore-keys: |
coredumps-arm64
coredumps-
- name: Run coredump tests
run: GODEBUG=asyncpreemptoff=1 go test -v ./tools/coredump/
integration-tests:
name: Integration tests (v${{ matrix.kernel }} ${{ matrix.target_arch }})
runs-on: ubuntu-24.04
needs: build-integration-test-binaries
timeout-minutes: 10
strategy:
matrix:
include:
# List of available kernels here:
# https://github.com/cilium/ci-kernels/pkgs/container/ci-kernels/versions?filters%5Bversion_type%5D=tagged
# AMD64
- { target_arch: amd64, kernel: 5.4.276 }
- { target_arch: amd64, kernel: 5.10.217 }
- { target_arch: amd64, kernel: 5.15.159 }
- { target_arch: amd64, kernel: 6.1.91 }
- { target_arch: amd64, kernel: 6.6.31 }
- { target_arch: amd64, kernel: 6.8.10 }
- { target_arch: amd64, kernel: 6.9.1 }
- { target_arch: amd64, kernel: 6.12.16 }
# ARM64 (NOTE: older ARM64 kernels are not available in Cilium repos)
- { target_arch: arm64, kernel: 6.6.31 }
- { target_arch: arm64, kernel: 6.8.4 }
- { target_arch: arm64, kernel: 6.9.1 }
- { target_arch: arm64, kernel: 6.12.16 }
steps:
- name: Clone code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install dependencies
run: |
sudo apt-get update -y
case "${{ matrix.target_arch }}" in
amd64) sudo apt-get -y install qemu-system-x86;;
arm64) sudo apt-get -y install qemu-system-arm;;
*) echo >&2 "bug: bad arch selected"; exit 1;;
esac
go install github.com/florianl/[email protected]
sudo mv ~/go/bin/bluebox /usr/local/bin/.
- name: Fetch integration test binaries
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with: { name: "integration-test-binaries-${{ matrix.target_arch }}" }
- name: Fetch precompiled kernel
run: |
install -d ci-kernels
echo "FROM ghcr.io/cilium/ci-kernels:${{ matrix.kernel }}" \
| docker buildx build --platform linux/${{ matrix.target_arch }} \
--quiet --pull --output="ci-kernels" -
mv ci-kernels/boot/ ci-kernels/${{ matrix.kernel }}/
- name: Test on kernel ${{ matrix.kernel }}
run: |
chmod a+rx *.test
case "${{ matrix.target_arch }}" in
amd64) export QEMU_ARCH=x86_64;;
arm64) export QEMU_ARCH=aarch64;;
*) echo >&2 "bug: bad arch selected"; exit 1;;
esac
support/run-tests.sh ${{ matrix.kernel }}