Repository navigation
refactor: rename Workflow Insight to Durable Execution Telemetry #864
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
| name: OTel Conformance Tests | |
| # Per-PR OpenTelemetry conformance run. Reuses the shared orchestrator from | |
| # aws-durable-execution-conformance-tests and points it at this repo's own handlers/templates | |
| # (conformance-tests-otel/) via examples_dir, so the handlers live here while the orchestration | |
| # (backend matrix, ADOT layer, collector build, long-running cycle) stays centralized. | |
| # | |
| # Mirrors the Java preset's language config (setup/prepare commands, ADOT repo, runtime) but calls | |
| # opentelemetry-orchestrator.yml directly, matching the Python SDK's caller. | |
| on: | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - "sdk/**" | |
| - "otel-plugin/**" | |
| - "conformance-tests-otel/**" | |
| - "pom.xml" | |
| - ".github/workflows/otel-conformance-tests.yml" | |
| push: | |
| branches: [main] | |
| paths: | |
| - "sdk/**" | |
| - "otel-plugin/**" | |
| - "conformance-tests-otel/**" | |
| - "pom.xml" | |
| - ".github/workflows/otel-conformance-tests.yml" | |
| workflow_dispatch: | |
| inputs: | |
| phase: | |
| description: Run short tests, launch a long run, or check the active long run | |
| required: true | |
| default: short | |
| type: choice | |
| options: | |
| - short | |
| - launch | |
| - check | |
| delay_seconds: | |
| description: Durable delay in seconds (1-86400, launch only) | |
| required: true | |
| default: "82800" | |
| type: string | |
| aws_region: | |
| description: AWS region | |
| required: true | |
| default: us-west-2 | |
| type: string | |
| conformance_test_ref: | |
| description: Optional conformance test commit SHA or branch name | |
| required: false | |
| type: string | |
| permissions: {} | |
| # Serialize shared test resources and retain pending PR runs instead of replacing them. | |
| concurrency: | |
| group: otel-conformance-tests | |
| cancel-in-progress: false | |
| queue: max | |
| jobs: | |
| opentelemetry: | |
| # 1. Run for non-PR events, such as scheduled runs and manual invocations | |
| # 2. For PRs, run only same-repo branches from non-Dependabot actors; forked PRs or Dependabot should not access secrets. | |
| if: github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) | |
| permissions: | |
| actions: write | |
| contents: read | |
| id-token: write | |
| uses: aws/aws-durable-execution-conformance-tests/.github/workflows/opentelemetry-orchestrator.yml@d8b8399264628dae57b7a96bf4cbf3e39a99fd8d | |
| with: | |
| case_count: 20 | |
| runs_on: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository && 'ubuntu-latest' || format('codebuild-github-actions-runner-{0}-{1}', github.run_id, github.run_attempt) }} | |
| language: java | |
| resource_prefix: j | |
| sdk_repository: aws/aws-durable-execution-sdk-java | |
| sdk_ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| conformance_test_ref: ${{ inputs.conformance_test_ref || '02d6dca971a38c13d94d6233d12f687e55b2a572' }} | |
| checkout_sdk: true | |
| # Build the handlers from this repo's checked-out module instead of the conformance repo's | |
| # bundled examples/java. Path is relative to the conformance workspace where the SDK is | |
| # checked out (.build/durable-sdk). | |
| examples_dir: .build/durable-sdk/conformance-tests-otel | |
| setup_command: | | |
| set -euo pipefail | |
| if [ -n "${JAVA_HOME_21_X64:-}" ]; then | |
| export JAVA_HOME="$JAVA_HOME_21_X64" | |
| elif [ -x /usr/lib/jvm/java-21-amazon-corretto/bin/java ]; then | |
| export JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto | |
| elif [ -z "${JAVA_HOME:-}" ]; then | |
| export JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v java)")")")" | |
| fi | |
| if [ ! -x "$JAVA_HOME/bin/java" ] || [ ! -x "$JAVA_HOME/bin/javac" ]; then | |
| echo "Selected JAVA_HOME=$JAVA_HOME is not a complete JDK" | |
| exit 1 | |
| fi | |
| export PATH="$JAVA_HOME/bin:$PATH" | |
| java_spec=$(java -XshowSettings:properties -version 2>&1 | awk '$1 == "java.specification.version" {print $3}') | |
| if [ "$java_spec" != "21" ]; then | |
| echo "Java 21 is required; selected JAVA_HOME=$JAVA_HOME reports specification version $java_spec" | |
| exit 1 | |
| fi | |
| javac_version=$(javac -version 2>&1) | |
| if [[ ! "$javac_version" =~ ^javac[[:space:]]21([.]|[[:space:]]|$) ]]; then | |
| echo "Java 21 javac is required; selected compiler reports $javac_version" | |
| exit 1 | |
| fi | |
| java -version | |
| javac -version | |
| if [ -n "${GITHUB_ENV:-}" ]; then | |
| echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV" | |
| fi | |
| if [ -n "${GITHUB_PATH:-}" ]; then | |
| echo "$JAVA_HOME/bin" >> "$GITHUB_PATH" | |
| fi | |
| prepare_command: | | |
| JAVA_SDK_VERSION=$( | |
| mvn -B -q \ | |
| --file "$SDK_CHECKOUT/pom.xml" \ | |
| -Dstyle.color=never \ | |
| -Dexpression=project.version \ | |
| -DforceStdout \ | |
| help:evaluate | |
| ) | |
| mvn -B -q \ | |
| --file "$SDK_CHECKOUT/pom.xml" \ | |
| --projects sdk,otel-plugin \ | |
| --also-make \ | |
| -DskipTests \ | |
| install | |
| echo "Using Java SDK version $JAVA_SDK_VERSION" | |
| echo "JAVA_SDK_VERSION=$JAVA_SDK_VERSION" >> "$GITHUB_ENV" | |
| mvn -B -q -DskipTests package \ | |
| -Ddurable.sdk.version="$JAVA_SDK_VERSION" \ | |
| --file "$EXAMPLES_DIR/pom.xml" | |
| adot_release_repository: aws-observability/aws-otel-java-instrumentation | |
| collector_compatible_runtime: java21 | |
| collector_otlp_endpoint: http://localhost:4318 | |
| phase: ${{ inputs.phase || 'short' }} | |
| delay_seconds: ${{ inputs.delay_seconds || '82800' }} | |
| aws_region: ${{ inputs.aws_region || 'us-west-2' }} | |
| secrets: | |
| CONFORMANCE_TEST_ROLE_ARN: ${{ secrets.TEST_ROLE_ARN }} | |
| CONFORMANCE_TEST_ACCOUNT_ID: ${{ secrets.TEST_ACCOUNT_ID }} | |
| CONFORMANCE_TEST_LAMBDA_EXECUTION_ROLE_ARN: ${{ secrets.TEST_LAMBDA_EXECUTION_ROLE_ARN }} | |
| DASH0_AUTH_TOKEN: ${{ secrets.DASH0_AUTH_TOKEN }} | |
| DATADOG_ACCESS_TOKEN: ${{ secrets.DATADOG_ACCESS_TOKEN }} | |
| DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }} | |
| DATADOG_APPLICATION_KEY: ${{ secrets.DATADOG_APPLICATION_KEY }} |