# To run locally # act -W .github/workflows/test-trace-steps.yaml --container-architecture linux/amd64 -b ci/logs:/logs name: Test Workflow on: pull_request: branches: - main paths: - .github/workflows/test-trace-steps.yaml workflow_dispatch: jobs: test-build: if: "!contains(github.event.pull_request.labels.*.name, 'hold-tests')" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4.1.7 - name: Set up Python uses: actions/setup-python@v5.1.1 with: python-version: '3.11' - name: Install Python dependencies run: | pip install --no-cache-dir opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation - name: Download OpenTelemetry Collector Contrib run: | wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.103.0/otelcol-contrib_0.103.0_linux_amd64.tar.gz tar -xvf otelcol-contrib_0.103.0_linux_amd64.tar.gz - name: Write secrets to files run: | echo "${{ secrets.ROSA_OTEL_CACERT }}" > /tmp/ca.crt echo "${{ secrets.ROSA_OTEL_SERVER_CRT }}" > /tmp/server.crt echo "${{ secrets.ROSA_OTEL_SERVER_KEY }}" > /tmp/server.key - name: Configure OpenTelemetry Collector run: | echo ' receivers: otlp: protocols: grpc: http: exporters: otlphttp: endpoint: "${{ secrets.ROSA_OTEL_ENDPOINT }}" tls: insecure: false cert_file: /tmp/server.crt key_file: /tmp/server.key ca_file: /tmp/ca.crt debug: verbosity: detailed service: pipelines: traces: receivers: [otlp] exporters: [debug, otlphttp] ' > otel-collector-config.yaml - name: Run OpenTelemetry Collector run: | ./otelcol-contrib --config otel-collector-config.yaml > otel-collector.log 2>&1 & - name: Start job trace run: | export WORKFLOW_NAME="test-trace" export JOB_NAME="test-build" export TRACE_ACTION="start" python ci/trace-steps.py - name: Build run: | echo "Simulating build step..." sleep 2 - name: Test run: | echo "Simulating test step..." sleep 2 - name: End job trace run: | export WORKFLOW_NAME="test-trace" export JOB_NAME="test-build" export TRACE_ACTION="end" python ci/trace-steps.py - name: Display OpenTelemetry Collector Logs run: cat otel-collector.log