Repository navigation
271 lines (265 loc) · 10.6 KB
/
Copy pathopentelemetry-orchestrator.yml
File metadata and controls
271 lines (265 loc) · 10.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
name: OpenTelemetry Orchestrator
on:
workflow_call:
inputs:
language:
description: Stable language key used in resource and artifact names
required: true
type: string
resource_prefix:
description: Short prefix used by Lambda resources
required: true
type: string
sdk_repository:
description: GitHub repository containing the language SDK
required: true
type: string
sdk_ref:
description: Full SDK commit SHA; defaults to the SDK main branch
required: false
default: ""
type: string
conformance_repository:
description: GitHub repository containing the conformance tests
required: false
default: aws/aws-durable-execution-conformance-tests
type: string
conformance_test_ref:
description: Optional conformance test commit SHA or branch name
required: false
default: ""
type: string
checkout_sdk:
description: Check out the SDK before running the preparation command
required: false
default: true
type: boolean
setup_command:
description: Shell command that installs or selects the language toolchain
required: false
default: ""
type: string
prepare_command:
description: Shell command that prepares the language handlers
required: false
default: ""
type: string
contract_test_command:
description: Optional shell command that validates the language example contract
required: false
default: ""
type: string
adot_release_repository:
description: GitHub repository whose latest release lists regional ADOT layers
required: false
default: ""
type: string
adot_layer_arn:
description: Optional fixed ADOT layer ARN, bypassing release discovery
required: false
default: ""
type: string
collector_compatible_runtime:
description: Lambda runtime recorded on the test collector layer
required: true
type: string
collector_otlp_endpoint:
description: Local collector OTLP endpoint used by the runtime
required: true
type: string
legacy_stack_prefix:
description: Optional legacy stack prefix cleaned up only after rollback
required: false
default: ""
type: string
suite_timeout_minutes:
description: Timeout for the ADOT/X-Ray suite job
required: false
default: 40
type: number
examples_dir:
description: >-
Directory containing the language's OTel handlers + template(s), typically a path
inside the checked-out SDK. Each SDK repository owns its own handlers, so this repo
bundles none and every caller must supply this path.
required: true
type: string
phase:
description: Run short tests, launch a long run, or check the active long run
required: false
default: short
type: string
delay_seconds:
description: Durable delay in seconds
required: false
default: "82800"
type: string
aws_region:
description: AWS region
required: false
default: us-west-2
type: string
runs_on:
description: Runner label for every job, e.g. a CodeBuild-hosted runner label
required: false
default: ubuntu-latest
type: string
secrets:
CONFORMANCE_TEST_ROLE_ARN:
description: AWS role assumed by the test jobs
required: true
CONFORMANCE_TEST_ACCOUNT_ID:
description: Expected AWS account ID
required: true
CONFORMANCE_TEST_LAMBDA_EXECUTION_ROLE_ARN:
description: Execution role assigned to test Lambda functions
required: true
DASH0_AUTH_TOKEN:
description: Deprecated Dash0 token accepted for caller compatibility but ignored
required: false
DATADOG_ACCESS_TOKEN:
description: Deprecated Datadog access token accepted for caller compatibility but ignored
required: false
DATADOG_API_KEY:
description: Deprecated Datadog API key accepted for caller compatibility but ignored
required: false
DATADOG_APPLICATION_KEY:
description: Deprecated Datadog application key accepted for caller compatibility
required: false
permissions:
actions: write
contents: read
id-token: write
jobs:
resolve:
name: Resolve test commits
uses: ./.github/workflows/opentelemetry-resolve.yml
with:
language: ${{ inputs.language }}
resource_prefix: ${{ inputs.resource_prefix }}
sdk_repository: ${{ inputs.sdk_repository }}
sdk_ref: ${{ inputs.sdk_ref }}
conformance_repository: ${{ inputs.conformance_repository }}
conformance_test_ref: ${{ inputs.conformance_test_ref }}
adot_release_repository: ${{ inputs.adot_release_repository }}
adot_layer_arn: ${{ inputs.adot_layer_arn }}
phase: ${{ inputs.phase }}
runs_on: ${{ inputs.runs_on }}
invocation:
name: Invocation view
needs: resolve
if: >-
github.event_name != 'schedule' &&
(github.event_name != 'workflow_dispatch' || inputs.phase == 'short')
uses: ./.github/workflows/opentelemetry-suite.yml
with:
language: ${{ inputs.language }}
resource_prefix: ${{ inputs.resource_prefix }}
conformance_repository: ${{ inputs.conformance_repository }}
sdk_repository: ${{ inputs.sdk_repository }}
sdk_ref: ${{ needs.resolve.outputs.sdk_ref }}
conformance_test_sha: ${{ needs.resolve.outputs.conformance_test_sha }}
checkout_sdk: ${{ inputs.checkout_sdk }}
setup_command: ${{ inputs.setup_command }}
prepare_command: ${{ inputs.prepare_command }}
contract_test_command: ${{ inputs.contract_test_command }}
adot_release_repository: ${{ inputs.adot_release_repository }}
adot_layer_arn: ${{ inputs.adot_layer_arn }}
collector_compatible_runtime: ${{ inputs.collector_compatible_runtime }}
collector_otlp_endpoint: ${{ inputs.collector_otlp_endpoint }}
legacy_stack_prefix: ${{ inputs.legacy_stack_prefix }}
suite_timeout_minutes: ${{ inputs.suite_timeout_minutes }}
examples_dir: ${{ inputs.examples_dir }}
suite: otel-invocation
case_count: 20
aws_region: ${{ inputs.aws_region }}
runs_on: ${{ inputs.runs_on }}
secrets: inherit
execution:
name: Execution view
needs: resolve
if: >-
github.event_name != 'schedule' &&
(github.event_name != 'workflow_dispatch' || inputs.phase == 'short')
uses: ./.github/workflows/opentelemetry-suite.yml
with:
language: ${{ inputs.language }}
resource_prefix: ${{ inputs.resource_prefix }}
conformance_repository: ${{ inputs.conformance_repository }}
sdk_repository: ${{ inputs.sdk_repository }}
sdk_ref: ${{ needs.resolve.outputs.sdk_ref }}
conformance_test_sha: ${{ needs.resolve.outputs.conformance_test_sha }}
checkout_sdk: ${{ inputs.checkout_sdk }}
setup_command: ${{ inputs.setup_command }}
prepare_command: ${{ inputs.prepare_command }}
contract_test_command: ${{ inputs.contract_test_command }}
adot_release_repository: ${{ inputs.adot_release_repository }}
adot_layer_arn: ${{ inputs.adot_layer_arn }}
collector_compatible_runtime: ${{ inputs.collector_compatible_runtime }}
collector_otlp_endpoint: ${{ inputs.collector_otlp_endpoint }}
legacy_stack_prefix: ${{ inputs.legacy_stack_prefix }}
suite_timeout_minutes: ${{ inputs.suite_timeout_minutes }}
examples_dir: ${{ inputs.examples_dir }}
suite: otel-execution
case_count: 20
aws_region: ${{ inputs.aws_region }}
runs_on: ${{ inputs.runs_on }}
secrets: inherit
long-running-invocation:
name: Long running invocation view
needs: resolve
uses: ./.github/workflows/opentelemetry-long-running.yml
with:
language: ${{ inputs.language }}
resource_prefix: ${{ inputs.resource_prefix }}
conformance_repository: ${{ inputs.conformance_repository }}
sdk_repository: ${{ inputs.sdk_repository }}
sdk_ref: ${{ needs.resolve.outputs.sdk_ref }}
conformance_test_sha: ${{ needs.resolve.outputs.conformance_test_sha }}
checkout_sdk: ${{ inputs.checkout_sdk }}
setup_command: ${{ inputs.setup_command }}
prepare_command: ${{ inputs.prepare_command }}
contract_test_command: ${{ inputs.contract_test_command }}
adot_release_repository: ${{ inputs.adot_release_repository }}
adot_layer_arn: ${{ inputs.adot_layer_arn }}
phase: >-
${{ (github.event_name == 'pull_request' || github.event_name == 'push')
&& 'short' || (github.event_name == 'schedule' && 'auto' || inputs.phase) }}
view: invocation
delay_seconds: >-
${{ (github.event_name == 'pull_request' || github.event_name == 'push'
|| (github.event_name != 'schedule' && inputs.phase == 'short'))
&& '60' || inputs.delay_seconds }}
examples_dir: ${{ inputs.examples_dir }}
aws_region: ${{ inputs.aws_region }}
runs_on: ${{ inputs.runs_on }}
secrets: inherit
long-running-execution:
name: Long running execution view
needs: resolve
uses: ./.github/workflows/opentelemetry-long-running.yml
with:
language: ${{ inputs.language }}
resource_prefix: ${{ inputs.resource_prefix }}
conformance_repository: ${{ inputs.conformance_repository }}
sdk_repository: ${{ inputs.sdk_repository }}
sdk_ref: ${{ needs.resolve.outputs.sdk_ref }}
conformance_test_sha: ${{ needs.resolve.outputs.conformance_test_sha }}
checkout_sdk: ${{ inputs.checkout_sdk }}
setup_command: ${{ inputs.setup_command }}
prepare_command: ${{ inputs.prepare_command }}
contract_test_command: ${{ inputs.contract_test_command }}
adot_release_repository: ${{ inputs.adot_release_repository }}
adot_layer_arn: ${{ inputs.adot_layer_arn }}
phase: >-
${{ (github.event_name == 'pull_request' || github.event_name == 'push')
&& 'short' || (github.event_name == 'schedule' && 'auto' || inputs.phase) }}
view: execution
delay_seconds: >-
${{ (github.event_name == 'pull_request' || github.event_name == 'push'
|| (github.event_name != 'schedule' && inputs.phase == 'short'))
&& '60' || inputs.delay_seconds }}
examples_dir: ${{ inputs.examples_dir }}
aws_region: ${{ inputs.aws_region }}
runs_on: ${{ inputs.runs_on }}
secrets: inherit