From 36a64bc16b51760401af21e1741c5c7ef45c569f Mon Sep 17 00:00:00 2001 From: Harry Nguyen Date: Fri, 23 Oct 2026 19:17:56 -0700 Subject: [PATCH 1/3] ci: run telemetry conformance via shared workflow The new caller workflow runs the telemetry conformance suite on pull requests, on pushes to main, and on manual dispatch. It calls the shared telemetry-suite workflow in the conformance repository at a pinned commit. The shared workflow exports PYTHON_SDK_REF and installs pip, as the OpenTelemetry conformance workflow does. So sam build installs the SDK and exporter from git at the tested commit, and the caller passes no setup or prepare command. The shared workflow then deploys the template and validates the telemetry suite. The README now describes the workflow. --- .../workflows/telemetry-conformance-tests.yml | 63 +++++++++++++++++++ .../README.md | 16 ++++- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/telemetry-conformance-tests.yml diff --git a/.github/workflows/telemetry-conformance-tests.yml b/.github/workflows/telemetry-conformance-tests.yml new file mode 100644 index 000000000..5912ad5a2 --- /dev/null +++ b/.github/workflows/telemetry-conformance-tests.yml @@ -0,0 +1,63 @@ +name: Telemetry Conformance Tests + +# SDK handlers and builds live here. The shared workflow deploys and validates them. + +on: + pull_request: + # Include the parent PR branch while this change is stacked on PR #822. Remove that branch filter when retargeting this PR to main. + branches: [main, feat/conformance-tests-telemetry] + paths: + - "packages/aws-durable-execution-sdk-python/**" + - "packages/aws-durable-execution-sdk-python-telemetry-exporter/**" + - "packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/**" + - ".github/workflows/telemetry-conformance-tests.yml" + push: + branches: [main] + paths: + - "packages/aws-durable-execution-sdk-python/**" + - "packages/aws-durable-execution-sdk-python-telemetry-exporter/**" + - "packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/**" + - ".github/workflows/telemetry-conformance-tests.yml" + workflow_dispatch: + inputs: + 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. Empty uses the shared workflow commit. + required: false + type: string + default: "" + +permissions: {} + +jobs: + telemetry: + # 1. Run for non-PR events, such as pushes and manual invocations. + # 2. For PRs, run only same-repo branches from non-Dependabot actors. Forked PRs and Dependabot cannot read secrets. + if: github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) + permissions: + contents: read + id-token: write + # The pinned SHA also selects the runner and telemetry-extension revision the shared + # workflow installs, so it must be reachable from a branch. It is the head of + # aws-durable-execution-conformance-tests PR #150, which exports PYTHON_SDK_REF and installs + # pip for the SAM makefile build; re-pin to that PR's merge commit once it lands. + uses: aws/aws-durable-execution-conformance-tests/.github/workflows/telemetry-suite.yml@c3d9c9922c067fed8275c20962dca4f8b5ab5d60 + with: + language: python + resource_prefix: python + sdk_repository: aws/aws-durable-execution-sdk-python + sdk_ref: ${{ github.event.pull_request.head.sha || github.sha }} + # Path relative to the conformance workspace, where this repo is checked out at .build/durable-sdk. + examples_dir: .build/durable-sdk/packages/aws-durable-execution-sdk-python-conformance-tests-telemetry + conformance_test_ref: ${{ inputs.conformance_test_ref }} + aws_region: ${{ inputs.aws_region || 'us-west-2' }} + runs_on: codebuild-github-actions-runner-${{ github.run_id }}-${{ github.run_attempt }} + timeout_minutes: 30 + 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 }} diff --git a/packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/README.md b/packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/README.md index c7c66ab11..10df8164e 100644 --- a/packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/README.md +++ b/packages/aws-durable-execution-sdk-python-conformance-tests-telemetry/README.md @@ -77,4 +77,18 @@ durable-execution-conformance \ --parameter-overrides LambdaExecutionRoleArn= ``` -A caller GitHub workflow is a follow-on. +## CI + +[`.github/workflows/telemetry-conformance-tests.yml:5–63`](../../.github/workflows/telemetry-conformance-tests.yml#L5-L63) +runs on pull requests and pushes to `main` that touch the SDK, telemetry +exporter, this package, or the workflow file. It also supports manual dispatch. + +It calls the conformance repository's reusable telemetry workflow at a pinned +SHA. `sdk_ref` selects the PR head commit, and `examples_dir` points to this +package. CI builds the handlers with `sam build`, which installs the SDK and +exporter from git at that commit. It then deploys the template and validates +the `telemetry` suite. Reports and execution histories are uploaded as +artifacts. + +CI assumes AWS credentials through OIDC using the repository's existing test +secrets. Fork and Dependabot pull requests skip the cloud job. From 2de140e947a29f21054322ad3f1bc90eef380cdc Mon Sep 17 00:00:00 2001 From: Pooya Paridel Date: Sat, 24 Oct 2026 13:07:57 -0700 Subject: [PATCH 2/3] ci(telemetry): pin shared workflow to main --- .github/workflows/telemetry-conformance-tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/telemetry-conformance-tests.yml b/.github/workflows/telemetry-conformance-tests.yml index 5912ad5a2..451fbc8f3 100644 --- a/.github/workflows/telemetry-conformance-tests.yml +++ b/.github/workflows/telemetry-conformance-tests.yml @@ -42,10 +42,10 @@ jobs: contents: read id-token: write # The pinned SHA also selects the runner and telemetry-extension revision the shared - # workflow installs, so it must be reachable from a branch. It is the head of - # aws-durable-execution-conformance-tests PR #150, which exports PYTHON_SDK_REF and installs - # pip for the SAM makefile build; re-pin to that PR's merge commit once it lands. - uses: aws/aws-durable-execution-conformance-tests/.github/workflows/telemetry-suite.yml@c3d9c9922c067fed8275c20962dca4f8b5ab5d60 + # workflow installs, so it must be reachable from a branch. It is the merge commit of + # aws-durable-execution-conformance-tests PR #150 on that repository's main branch. That + # commit exports PYTHON_SDK_REF and installs pip for the SAM makefile build. + uses: aws/aws-durable-execution-conformance-tests/.github/workflows/telemetry-suite.yml@d4b7df927ea7eb7022bcca339d2cddd387d3d650 with: language: python resource_prefix: python From b25c020a56b58e3e2a376f035b233dd53fbd7f46 Mon Sep 17 00:00:00 2001 From: Pooya Paridel Date: Sat, 24 Oct 2026 15:05:00 -0700 Subject: [PATCH 3/3] ci(telemetry): drop the stacked branch filter --- .github/workflows/telemetry-conformance-tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/telemetry-conformance-tests.yml b/.github/workflows/telemetry-conformance-tests.yml index 451fbc8f3..b2ace1c80 100644 --- a/.github/workflows/telemetry-conformance-tests.yml +++ b/.github/workflows/telemetry-conformance-tests.yml @@ -4,8 +4,7 @@ name: Telemetry Conformance Tests on: pull_request: - # Include the parent PR branch while this change is stacked on PR #822. Remove that branch filter when retargeting this PR to main. - branches: [main, feat/conformance-tests-telemetry] + branches: [main] paths: - "packages/aws-durable-execution-sdk-python/**" - "packages/aws-durable-execution-sdk-python-telemetry-exporter/**"