我有一个要执行的任务,只有在存在某个配置文件时才有意义。因此,我想对返回true
(如果该文件存在)的任务设置自定义条件。我认为这样的语法很有意义:
condition: exists('$(projectPath)\myconfigfile.xml')
这似乎是自定义条件的合理用例。
Microsoft说,以下功能始终可用:and
,coalesce
,contains
,endsWith
,eq
,format
,{{ 1}},ge
,gt
,in
,le
,lt
,ne
,not
,{{1} },notIn
,or
。而且:
我发现这有点令人沮丧。有哪些“其他功能”?我如何研究它们?特别是是否有一个文件名可以告诉我该文件是否存在?
答案 0 :(得分:11)
丹尼尔(Daniel)的答案是正确的,因此仅举一个例子:
创建一个PowerShell任务来设置管道变量:
$fileExists = Test-Path -Path "$(System.DefaultWorkingDirectory)/file.txt"
Write-Output "##vso[task.setvariable variable=FileExists]$fileExists"
创建在自定义条件下使用变量的辅助任务:
eq(variables['FileExists'], True)
答案 1 :(得分:3)
没有内置条件或功能可以根据文件的存在或不存在进行操作。
您可以编写并运行设置变量的脚本,然后检查变量的内容。
答案 2 :(得分:-1)
此技巧对我有用,只需将文件复制到临时文件夹中(如果不存在,则取消管道)
- task: CopyFiles@2
inputs:
sourceFolder: '$(projectPath)\myconfigfile.xml'
contents: '**/*'
targetFolder: '$(Agent.TempDirectory)'
displayName: 'If file not exist, pipeline is cancel'