@@ -145,6 +145,17 @@ def build_task_spec_for_task(
145145 if val and pipeline_channel .extract_pipeline_channels_from_any (val ):
146146 task .inputs ['base_image' ] = val
147147
148+ if task .container_spec and task .container_spec .env :
149+ for env_name , env_val in task .container_spec .env .items ():
150+ if env_val and pipeline_channel .extract_pipeline_channels_from_any (
151+ env_val ):
152+ if env_name in task .inputs :
153+ raise ValueError (
154+ f'Environment variable name "{ env_name } " collides '
155+ f'with an existing task input. Please rename either '
156+ f'the input or the environment variable.' )
157+ task .inputs [env_name ] = env_val
158+
148159 for input_name , input_value in task .inputs .items ():
149160 # Since LoopParameterArgument and LoopArtifactArgument and LoopArgumentVariable are narrower
150161 # types than PipelineParameterChannel, start with them.
@@ -729,9 +740,7 @@ def convert_to_placeholder(input_value: str) -> str:
729740 compiler injected input name."""
730741 pipeline_channels = (
731742 pipeline_channel .extract_pipeline_channels_from_any (input_value ))
732- if pipeline_channels :
733- assert len (pipeline_channels ) == 1
734- channel = pipeline_channels [0 ]
743+ for channel in pipeline_channels :
735744 additional_input_name = (
736745 compiler_utils .additional_input_name_for_pipeline_channel (
737746 channel ))
@@ -748,7 +757,7 @@ def convert_to_placeholder(input_value: str) -> str:
748757 args = task .container_spec .args ,
749758 env = [
750759 pipeline_spec_pb2 .PipelineDeploymentConfig .PipelineContainerSpec
751- .EnvVar (name = name , value = value )
760+ .EnvVar (name = name , value = convert_to_placeholder ( value ) )
752761 for name , value in (task .container_spec .env or {}).items ()
753762 ]))
754763
0 commit comments