@@ -128,74 +128,91 @@ locals {
128128 name = " adk-cloud_run-bq-analytics"
129129 value = " adk,cloud_run,--bq-analytics"
130130 },
131+ {
132+ name = " adk-gke"
133+ value = " adk,gke"
134+ },
135+ {
136+ name = " langgraph-gke"
137+ value = " langgraph,gke"
138+ },
139+ {
140+ name = " agentic_rag-gke-vertex_ai_search"
141+ value = " agentic_rag,gke,--datastore,vertex_ai_search"
142+ },
143+ {
144+ name = " adk_live-gke"
145+ value = " adk_live,gke"
146+ },
147+ {
148+ name = " adk_a2a-gke"
149+ value = " adk_a2a,gke"
150+ },
151+ {
152+ name = " adk_go-gke"
153+ value = " adk_go,gke"
154+ },
155+ {
156+ name = " adk_java-gke"
157+ value = " adk_java,gke"
158+ },
159+ {
160+ name = " adk_ts-gke"
161+ value = " adk_ts,gke"
162+ },
131163 ]
132164
133- # Go-specific included files (different paths from Python)
134- # Only triggers when Go-specific template files change
165+ # Go-specific included files - auto-derives deployment target from combo value
135166 go_agent_testing_included_files = {
136- " adk_go-cloud_run " = [
137- # Go agent-specific files
167+ for combo in local . agent_testing_combinations :
168+ combo.name = > [
138169 " agent_starter_pack/agents/adk_go/**" ,
139- # Shared base template (affects all languages)
140170 " agent_starter_pack/base_templates/_shared/**" ,
141- # Go base template
142171 " agent_starter_pack/base_templates/go/**" ,
143- # Go deployment target (Cloud Run only for Go)
144- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
145- " agent_starter_pack/deployment_targets/cloud_run/go/**" ,
146- # Common files
172+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
173+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /go/**" ,
147174 " agent_starter_pack/cli/**" ,
148175 " tests/integration/test_template_linting.py" ,
149176 " tests/integration/test_templated_patterns.py" ,
150177 " agent_starter_pack/resources/locks/**" ,
151178 " pyproject.toml" ,
152179 " uv.lock" ,
153- ]
180+ ] if endswith ( split ( " , " , combo . value )[ 0 ], " _go " )
154181 }
155182
156- # Java-specific included files (different paths from Python)
157- # Only triggers when Java-specific template files change
183+ # Java-specific included files - auto-derives deployment target from combo value
158184 java_agent_testing_included_files = {
159- " adk_java-cloud_run " = [
160- # Java agent-specific files
185+ for combo in local . agent_testing_combinations :
186+ combo.name = > [
161187 " agent_starter_pack/agents/adk_java/**" ,
162- # Shared base template (affects all languages)
163188 " agent_starter_pack/base_templates/_shared/**" ,
164- # Java base template
165189 " agent_starter_pack/base_templates/java/**" ,
166- # Java deployment target (Cloud Run only for Java)
167- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
168- " agent_starter_pack/deployment_targets/cloud_run/java/**" ,
169- # Common files
190+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
191+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /java/**" ,
170192 " agent_starter_pack/cli/**" ,
171193 " tests/integration/test_template_linting.py" ,
172194 " tests/integration/test_templated_patterns.py" ,
173195 " pyproject.toml" ,
174196 " uv.lock" ,
175- ]
197+ ] if endswith ( split ( " , " , combo . value )[ 0 ], " _java " )
176198 }
177199
178- # TypeScript-specific included files (different paths from Python)
179- # Only triggers when TypeScript-specific template files change
200+ # TypeScript-specific included files - auto-derives deployment target from combo value
180201 ts_agent_testing_included_files = {
181- " adk_ts-cloud_run " = [
182- # TypeScript agent-specific files
202+ for combo in local . agent_testing_combinations :
203+ combo.name = > [
183204 " agent_starter_pack/agents/adk_ts/**" ,
184- # Shared base template (affects all languages)
185205 " agent_starter_pack/base_templates/_shared/**" ,
186- # TypeScript base template
187206 " agent_starter_pack/base_templates/typescript/**" ,
188- # TypeScript deployment target (Cloud Run only for TypeScript)
189- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
190- " agent_starter_pack/deployment_targets/cloud_run/typescript/**" ,
191- # Common files
207+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
208+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /typescript/**" ,
192209 " agent_starter_pack/cli/**" ,
193210 " tests/integration/test_template_linting.py" ,
194211 " tests/integration/test_templated_patterns.py" ,
195212 " agent_starter_pack/resources/locks/**" ,
196213 " pyproject.toml" ,
197214 " uv.lock" ,
198- ]
215+ ] if endswith ( split ( " , " , combo . value )[ 0 ], " _ts " )
199216 }
200217
201218 agent_testing_included_files = {
@@ -213,11 +230,9 @@ locals {
213230 # Shared and Python base templates only (not Go/Java/TypeScript)
214231 " agent_starter_pack/base_templates/_shared/**" ,
215232 " agent_starter_pack/base_templates/python/**" ,
216- # Python deployment targets only (not Go/Java/TypeScript)
217- " agent_starter_pack/deployment_targets/agent_engine/_shared/**" ,
218- " agent_starter_pack/deployment_targets/agent_engine/python/**" ,
219- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
220- " agent_starter_pack/deployment_targets/cloud_run/python/**" ,
233+ # Deployment target derived from combo value
234+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
235+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /python/**" ,
221236 " tests/integration/test_template_linting.py" ,
222237 " tests/integration/test_templated_patterns.py" ,
223238 " agent_starter_pack/resources/locks/**" ,
@@ -295,74 +310,75 @@ locals {
295310 name = " adk_ts-cloud_run"
296311 value = " adk_ts,cloud_run"
297312 },
313+ {
314+ name = " adk-gke"
315+ value = " adk,gke"
316+ },
317+ {
318+ name = " langgraph-gke"
319+ value = " langgraph,gke"
320+ },
321+ {
322+ name = " agentic_rag-gke-vertex_ai_search"
323+ value = " agentic_rag,gke,--datastore,vertex_ai_search"
324+ },
325+ {
326+ name = " adk_live-gke"
327+ value = " adk_live,gke"
328+ },
329+ {
330+ name = " adk_a2a-gke"
331+ value = " adk_a2a,gke"
332+ },
333+ {
334+ name = " adk_go-gke"
335+ value = " adk_go,gke"
336+ },
337+ {
338+ name = " adk_java-gke"
339+ value = " adk_java,gke"
340+ },
341+ {
342+ name = " adk_ts-gke"
343+ value = " adk_ts,gke"
344+ },
298345 ]
299346
300- # Go-specific E2E included files
301- # Only triggers when Go-specific template files change
347+ # Sentinel combos watch broad paths (cli, templates, pyproject.toml, etc.)
348+ # All other combos only watch agent-specific + deployment-target-specific paths.
349+ e2e_sentinel_combos = toset ([" adk-agent_engine" , " adk-cloud_run" , " adk-gke" ])
350+
351+ # Go-specific E2E included files - auto-derives deployment target from combo value
302352 go_e2e_agent_deployment_included_files = {
303- " adk_go-cloud_run " = [
304- # Go agent-specific files
353+ for combo in local . e2e_agent_deployment_combinations :
354+ combo.name = > [
305355 " agent_starter_pack/agents/adk_go/**" ,
306- # Shared base template
307- " agent_starter_pack/base_templates/_shared/**" ,
308- # Go base template
309356 " agent_starter_pack/base_templates/go/**" ,
310- # Go deployment target (Cloud Run only for Go)
311- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
312- " agent_starter_pack/deployment_targets/cloud_run/go/**" ,
313- # Common files
314- " agent_starter_pack/cli/**" ,
315- " tests/cicd/test_e2e_deployment.py" ,
316- " agent_starter_pack/resources/locks/**" ,
317- " pyproject.toml" ,
318- " uv.lock" ,
319- " .cloudbuild/**" ,
320- ]
357+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
358+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /go/**" ,
359+ ] if endswith (split (" ," , combo. value )[0 ], " _go" )
321360 }
322361
323- # Java-specific E2E included files
324- # Only triggers when Java-specific template files change
362+ # Java-specific E2E included files - auto-derives deployment target from combo value
325363 java_e2e_agent_deployment_included_files = {
326- " adk_java-cloud_run " = [
327- # Java agent-specific files
364+ for combo in local . e2e_agent_deployment_combinations :
365+ combo.name = > [
328366 " agent_starter_pack/agents/adk_java/**" ,
329- # Shared base template
330- " agent_starter_pack/base_templates/_shared/**" ,
331- # Java base template
332367 " agent_starter_pack/base_templates/java/**" ,
333- # Java deployment target (Cloud Run only for Java)
334- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
335- " agent_starter_pack/deployment_targets/cloud_run/java/**" ,
336- # Common files
337- " agent_starter_pack/cli/**" ,
338- " tests/cicd/test_e2e_deployment.py" ,
339- " pyproject.toml" ,
340- " uv.lock" ,
341- " .cloudbuild/**" ,
342- ]
368+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
369+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /java/**" ,
370+ ] if endswith (split (" ," , combo. value )[0 ], " _java" )
343371 }
344372
345- # TypeScript-specific E2E included files
346- # Only triggers when TypeScript-specific template files change
373+ # TypeScript-specific E2E included files - auto-derives deployment target from combo value
347374 ts_e2e_agent_deployment_included_files = {
348- " adk_ts-cloud_run " = [
349- # TypeScript agent-specific files
375+ for combo in local . e2e_agent_deployment_combinations :
376+ combo.name = > [
350377 " agent_starter_pack/agents/adk_ts/**" ,
351- # Shared base template
352- " agent_starter_pack/base_templates/_shared/**" ,
353- # TypeScript base template
354378 " agent_starter_pack/base_templates/typescript/**" ,
355- # TypeScript deployment target (Cloud Run only for TypeScript)
356- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
357- " agent_starter_pack/deployment_targets/cloud_run/typescript/**" ,
358- # Common files
359- " agent_starter_pack/cli/**" ,
360- " tests/cicd/test_e2e_deployment.py" ,
361- " agent_starter_pack/resources/locks/**" ,
362- " pyproject.toml" ,
363- " uv.lock" ,
364- " .cloudbuild/**" ,
365- ]
379+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
380+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /typescript/**" ,
381+ ] if endswith (split (" ," , combo. value )[0 ], " _ts" )
366382 }
367383
368384 # Create a safe trigger name by replacing underscores with hyphens and dots with hyphens
@@ -385,33 +401,35 @@ locals {
385401 # Cloud SQL is Python Cloud Run only
386402 " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
387403 " agent_starter_pack/deployment_targets/cloud_run/python/**" ,
388- " pyproject.toml" ,
389404 ] : substr (combo. name , 0 , 11 ) == " agentic_rag" ? [
390405 " agent_starter_pack/agents/agentic_rag/**/*" ,
391406 " agent_starter_pack/agents/agentic_rag/data_ingestion/**/*" ,
392- " pyproject.toml" ,
407+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
408+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /python/**" ,
393409 ] : substr (combo. name , 0 , 8 ) == " adk_live" ? [
394410 " agent_starter_pack/agents/adk_live/**/*" ,
395- " pyproject.toml" ,
396- ] : [
397- # Only include files for the specific agent being tested
411+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
412+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /python/**" ,
413+ ] :
414+ contains (local. e2e_sentinel_combos , combo. name ) ? [
415+ # Sentinel: broad paths - catches CLI, template, and dependency changes
398416 " agent_starter_pack/agents/${ split (" ," , combo. value )[0 ]} /**" ,
399- # Common files that affect all agents
400417 " agent_starter_pack/cli/**" ,
401- # Shared and Python base templates only (not Go/Java/TypeScript)
402418 " agent_starter_pack/base_templates/_shared/**" ,
403419 " agent_starter_pack/base_templates/python/**" ,
404420 " agent_starter_pack/agents/agentic_rag/data_ingestion/**" ,
405- # Python deployment targets only (not Go/Java/TypeScript)
406- " agent_starter_pack/deployment_targets/agent_engine/_shared/**" ,
407- " agent_starter_pack/deployment_targets/agent_engine/python/**" ,
408- " agent_starter_pack/deployment_targets/cloud_run/_shared/**" ,
409- " agent_starter_pack/deployment_targets/cloud_run/python/**" ,
421+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
422+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /python/**" ,
410423 " tests/cicd/test_e2e_deployment.py" ,
411424 " agent_starter_pack/resources/locks/**" ,
412425 " pyproject.toml" ,
413426 " uv.lock" ,
414427 " .cloudbuild/**" ,
428+ ] : [
429+ # Non-sentinel: only agent + deployment target paths
430+ " agent_starter_pack/agents/${ split (" ," , combo. value )[0 ]} /**" ,
431+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /_shared/**" ,
432+ " agent_starter_pack/deployment_targets/${ split (" ," , combo. value )[1 ]} /python/**" ,
415433 ]
416434 )
417435 }
0 commit comments