Skip to content

GenAI: support SSE streaming responses and raise HTTP capture limit to 256KB #8457

GenAI: support SSE streaming responses and raise HTTP capture limit to 256KB

GenAI: support SSE streaming responses and raise HTTP capture limit to 256KB #8457

Workflow file for this run

name: PR checks
on:
push:
branches: [main, release-*]
pull_request:
branches: [main, release-*]
workflow_call:
inputs:
ref:
description: "Git ref (commit, branch, or tag) to check out"
required: false
type: string
concurrency:
group: pr-checks-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
generate-bpf:
name: Generate BPF
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref || github.sha }}
persist-credentials: false
- uses: ./.github/actions/generate-bpf
checks:
name: Generated files and repo hygiene
needs: generate-bpf
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref || github.sha }}
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 # zizmor: ignore[cache-poisoning] go.sum verifies module integrity
with:
go-version-file: "go.mod"
cache: true
- name: Go build cache
uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 # zizmor: ignore[cache-poisoning] go build cache is content-addressable and self-verifying
with:
path: ~/.cache/go-build
key: go-build-pr-race-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.go', 'go.sum') }}
restore-keys: |
go-build-pr-race-${{ runner.os }}-${{ runner.arch }}-
- name: Download generated BPF files
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: bpf-generated-${{ github.run_id }}
- name: Build test tools
run: make prereqs
- name: Run checks
run: make go-mod-tidy license-header-check notices-update check-go-mod check-ebpf-ver-synced check-config-schema check-config-v2-parity check-clean-work-tree
clang-format:
name: Clang format
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref || github.sha }}
fetch-depth: 0
persist-credentials: false
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format-19
- name: Check clang-format
run: |
files=$( \
git diff --name-status origin/main...HEAD \
| awk '$1 != "D" && $2 !~ /^NOTICES/ && /\.(c|cpp|h)$/ { print ($3 != "" ? $3 : $2) }' \
)
if [ -z "$files" ]; then
echo "No C/C++ files modified."
exit 0
fi
clang-format-19 -i $files
if ! git diff --exit-code $files; then
echo "Error: Some files are not formatted correctly. Run clang-format on the modified files or use the pre-commit hook."
exit 1
fi
clang-tidy:
name: Clang tidy
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref || github.sha }}
persist-credentials: false
- name: Install clang-tidy
run: |
sudo apt-get update
sudo apt-get install -y wget lsb-release software-properties-common gnupg
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
sudo add-apt-repository -y 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble main'
sudo apt-get install -y clang-tidy-19
- name: Run clang-tidy
run: CLANG_TIDY=clang-tidy-19 make clang-tidy
collector-cross-compile:
name: "Collector cross-compile (${{ matrix.goos }}/${{ matrix.goarch }})"
needs: generate-bpf
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
# Supported platforms (full OBI eBPF support)
- { goos: linux, goarch: amd64 }
- { goos: linux, goarch: arm64 }
# Unsupported platforms (factory stubs — must compile, return errUnsupportedPlatform at runtime)
- { goos: linux, goarch: ppc64le }
- { goos: linux, goarch: s390x }
- { goos: linux, goarch: "386" }
- { goos: windows, goarch: amd64 }
- { goos: windows, goarch: arm64 }
- { goos: darwin, goarch: amd64 }
- { goos: darwin, goarch: arm64 }
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref || github.sha }}
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 # zizmor: ignore[cache-poisoning] go.sum verifies module integrity
with:
go-version-file: "go.mod"
cache: true
- name: Go build cache
uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 # zizmor: ignore[cache-poisoning] go build cache is content-addressable and self-verifying
with:
path: ~/.cache/go-build
key: go-build-cross-${{ matrix.goos }}-${{ matrix.goarch }}-${{ hashFiles('**/*.go', 'go.sum') }}
restore-keys: |
go-build-cross-${{ matrix.goos }}-${{ matrix.goarch }}-
- name: Download generated BPF files
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: bpf-generated-${{ github.run_id }}
- name: Build collector package
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: go build ./collector/...