Skip to content

Upgrade collector dependencies to 0.140.0/0.140.1/1.46.0 #277

Upgrade collector dependencies to 0.140.0/0.140.1/1.46.0

Upgrade collector dependencies to 0.140.0/0.140.1/1.46.0 #277

# This action runs the pipeline perf continuous benchmarking suite if a specific label
# exits on the PR ("pipelineperf"). It performs the same tests as the continuous benchmarks
# but doesn't update the charts since it's intended to run prior to merge.
name: Pipeline Perf Pre-Merge
on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, labeled]
permissions:
contents: read
# Cancel in-progress runs for the same PR if a new manual run is started
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# Check for a label and skip gracefully if it's not found.
# If the label is found, set an output that the perf test job will use to know it needs to run.
label-check:
name: Preflight Check for Label
runs-on: ubuntu-latest
outputs:
has_label: ${{ steps.check_label.outputs.has_label }}
steps:
- name: Check if PR has 'pipelineperf' label
id: check_label
run: |
echo "Checking for 'pipelineperf' label..."
labels=$(echo '${{ toJson(github.event.pull_request.labels) }}' | jq -r '.[].name')
echo "Found labels: $labels"
if echo "$labels" | grep -q "pipelineperf"; then
echo "Label pipelineperf found - perf tests will run"
echo "has_label=true" >> $GITHUB_OUTPUT
else
echo "Label 'pipelineperf' not found - skipping perf tests"
echo "has_label=false" >> $GITHUB_OUTPUT
fi
pipeline-perf-test:
needs: label-check
if: needs.label-check.outputs.has_label == 'true'
runs-on: oracle-bare-metal-64cpu-512gb-x86-64
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@95d9a5deda9de15063e7595e9719c11c38c90ae2 # v2.13.2
with:
egress-policy: audit
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- id: detect_os
name: Detect OS (self-hosted)
shell: bash
run: |
. /etc/os-release
echo "id=$ID" >> "$GITHUB_OUTPUT"
echo "version_id=$VERSION_ID" >> "$GITHUB_OUTPUT"
- name: Install/prepare Python 3.11 on Oracle Linux 8 (self-hosted only)
if: ${{ runner.os == 'Linux' && steps.detect_os.outputs.id == 'ol' && startsWith(steps.detect_os.outputs.version_id, '8') }}
shell: bash
run: |
set -euxo pipefail
# Run disk cleanup script
bash ./.github/workflows/scripts/disk-cleanup.sh
sudo dnf -y install oracle-epel-release-el8 || true
sudo dnf -y config-manager --set-enabled ol8_codeready_builder || true
sudo dnf -y makecache
sudo dnf -y install python3.11 python3.11-devel || true
if ! /usr/bin/python3.11 -m pip --version >/dev/null 2>&1; then
/usr/bin/python3.11 -m ensurepip --upgrade || true
fi
/usr/bin/python3.11 -m pip install --upgrade pip setuptools wheel || true
mkdir -p "$HOME/.local/bin"
ln -sf /usr/bin/python3.11 "$HOME/.local/bin/python"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
python --version
python -m pip --version
- name: Build dataflow_engine
run: |
git submodule init
git submodule update
cd rust/otap-dataflow
docker build --build-context otel-arrow=../../ -f Dockerfile -t df_engine .
cd ../..
- name: Install dependencies
run: |
python -m pip install --user --upgrade pip
pip install --user -r tools/pipeline_perf_test/orchestrator/requirements.txt
pip install --user -r tools/pipeline_perf_test/load_generator/requirements.txt
- name: Run pipeline performance test suite
run: |
cd tools/pipeline_perf_test
python orchestrator/run_orchestrator.py --debug --config test_suites/integration/continuous/100klrps-docker.yaml