![](/img/trans.png)
[英]How to fail Azure devops pipeline task specifically for failures in bash script
[英]How to fail Azure devops pipeline task specifically for failures in build-steps.yaml file - bash
在此处输入图像描述,尽管 terraform 验证有错误但构建并未停止,这是构建步骤中的部分。yaml:
- task: TerraformCLI@0
displayName: "Run Terraform fmt"
inputs:
command: 'fmt'
commandOptions: '-check -recursive'
allowTelemetryCollection: false
- bash: |
find . -type f \
-name "*.tf" | \
xargs -I % dirname % | \
sort -u | \
xargs -I ? bash -c \
'(cd ? && terraform init -backend=false && terraform validate ; rm -rf .terraform)' \
displayName: "Run Terraform validate"
我试过continueOnError: false
,但没有用。
- task: TerraformCLI@0
displayName: "Run Terraform fmt"
inputs:
command: 'fmt'
commandOptions: '-check -recursive'
allowTelemetryCollection: false
- bash: |
find . -type f \
-name "*.tf" | \
xargs -I % dirname % | \
sort -u | \
xargs -I ? bash -c \
'(cd ? && terraform init -backend=false && terraform validate ; rm -rf .terraform)' \
displayName: "Run Terraform validate"
continueOnError: false
首先,您可以使用TerraformCLl
任务运行 terraform 验证。
- task: TerraformCLI@0
displayName: "Run Terraform fmt"
inputs:
command: 'validate'
commandOptions: 'xxxx'
allowTelemetryCollection: false
我可以在使用 bash 时停止构建吗?
您可以尝试为 bash 任务启用选项“ Fail on Standard Error
”。 如果这是真的,如果有任何错误写入StandardError
stream,则此任务将失败。
例如:
- bash: |
find . -type f \
-name "*.tf" | \
xargs -I % dirname % | \
sort -u | \
xargs -I ? bash -c \
'(cd ? && terraform init -backend=false && terraform validate ; rm -rf .terraform)' \
displayName: "Run Terraform validate"
failOnStderr: true
或者,在脚本中使用set -e
:
- bash: |
set -e
find . -type f \
-name "*.tf" | \
xargs -I % dirname % | \
sort -u | \
xargs -I ? bash -c \
'(cd ? && terraform init -backend=false && terraform validate ; rm -rf .terraform)' \
displayName: "Run Terraform validate"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.