Upgrade collector dependencies to 0.140.0/0.140.1/1.46.0 #277
Workflow file for this run
This file contains hidden or 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
| # 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 |