Azure devops 内部条件为bash表达式的Azure管道

Azure devops 内部条件为bash表达式的Azure管道,azure-devops,yaml,azure-pipelines,Azure Devops,Yaml,Azure Pipelines,如何在这种情况下使用bash脚本 - bash: export PYTHONPATH="src/" condition: succeeded(fileExists('./src/')) displayName: Add src/ Path if Exists 条件:成功(fileExists('./src/'))这似乎不起作用,下面显示了以下错误消息: ##[error]Unrecognized value: 'fileExists'. 条件不是这样的,您可以在那里检查变量值 因此,

如何在这种情况下使用bash脚本

- bash: export PYTHONPATH="src/"
  condition: succeeded(fileExists('./src/'))
  displayName: Add src/ Path if Exists
条件:成功(fileExists('./src/'))
这似乎不起作用,下面显示了以下错误消息:

##[error]Unrecognized value: 'fileExists'.

条件不是这样的,您可以在那里检查变量值

因此,如果要检查文件是否存在,则需要添加另一个脚本任务来检查文件是否存在,如果存在,则设置一个变量,而不是在条件中使用此变量

大概是这样的:

- bash: |
   if [ -f /tmp/foo.txt ]; then
       echo "##vso[task.setvariable variable=fileExist]true"
   fi

- bash: export PYTHONPATH="src/"
  condition: and(succeeded(), eq(variables['fileExist'], 'true'))

条件不是这样的,您可以在那里检查变量值

因此,如果要检查文件是否存在,则需要添加另一个脚本任务来检查文件是否存在,如果存在,则设置一个变量,而不是在条件中使用此变量

大概是这样的:

- bash: |
   if [ -f /tmp/foo.txt ]; then
       echo "##vso[task.setvariable variable=fileExist]true"
   fi

- bash: export PYTHONPATH="src/"
  condition: and(succeeded(), eq(variables['fileExist'], 'true'))

我同意谢基的回答。到目前为止,azure devops只能在条件下支持use variable,而其中很少支持。但它不包含fileExists。你们需要把它和变量联系起来,然后你们才能成功地在条件下应用。我同意Shayki的答案。到目前为止,azure devops只能在条件下支持use variable,而其中很少支持。但它不包含fileExists。您需要使其与变量关联,然后才能成功地在条件中应用。似乎它未创建的fileExist变量,
求值:和(succeed(),eq(变量['fileExist'],'true'))展开:和(true,eq(Null,'true'))结果:False
@SLN检查
中的代码是否正在运行,在那里添加
echo
。我认为每个bash都会创建一个新会话,当bash任务完成时,会话将关闭,变量不再存在似乎它没有创建的fileExist变量,
evaluation:and(succeed(),eq(variables['fileExist'],'true'))展开:和(true,eq(Null,'true'))结果:False
@SLN检查
中的代码是否正在运行,如果
正在运行,则在那里添加
echo
。我认为每个bash都会创建一个新会话,当bash任务完成时,会话关闭,变量不再存在