我的azure-pipelines.yml中有以下内容
jobs:
- job: TestifFolder1Exists
pool:
vmImage: 'ubuntu-16.04'
steps:
- bash: git log -1 --name-only | grep -c Folder1
failOnStderr: false
- job: Folder1DoesntExist
pool:
vmImage: 'ubuntu-16.04'
dependsOn: TestifFolder1Exists
condition: failed()
- job: Folder1DoesExist
pool:
vmImage: 'ubuntu-16.04'
dependsOn: TestifFolder1Exists
condition: succeeded()
我正在尝试测试文件夹是否进行了更改,因此我可以从该目录发布工件。
我遇到的问题是,如果没有任何内容写入该文件夹,则脚本会失败,并显示一个
Bash exited with code '1'.
(这是我想要的),从而使整个构建失败。
如果我添加continueOnError
,则以下作业将始终运行成功的作业。
如何让这项工作失败,而又不会使整个构建失败?
答案 0 :(得分:0)
我没有弄清楚如何忽略失败的工作,但这就是我解决此特定问题的方法
jobs:
- job: TestifFolder1Exists
pool:
vmImage: 'ubuntu-16.04'
steps:
- bash: |
if [ "$(git log -1 --name-only | grep -c Folder1)" -eq 1 ]; then
echo "##vso[task.setVariable variable=Folder1Changed]true"
fi
- bash: echo succeeded
displayName: Perform some task
condition: eq(variables.Folder1Changed, 'true')
(尽管事实证明,Azure Devops已经完成了我试图在此处创建的操作-路径筛选器触发器!)
答案 1 :(得分:0)
有一个名为continueOnError
的选项。默认情况下设置为false。将其更改为true,您的任务将无法停止工作。