Azure DevOps模板:如何在无任务执行时触发流水线失败
Azure Pipeline YAML模板:处理无效项目类型时标记流水线失败
你可以通过添加一个验证步骤,在传入的type参数不属于允许的取值范围(NetFw、NetCore、Xamarin)时,强制标记流水线为失败。以下是修改后的完整模板:
parameters: - name: displayName type: string - name: type type: string - name: sourcePath type: string - name: fileName type: string - name: versionNumber type: string steps: - task: Assembly-Info-NetFramework@3 displayName: ${{ parameters.displayName }} condition: ${{ eq(parameters.type, 'NetFw') }} inputs: Path: ${{ parameters.sourcePath }} FileNames: ${{ parameters.fileName }} InsertAttributes: false FileEncoding: 'auto' WriteBOM: false VersionNumber: ${{ parameters.versionNumber }} FileVersionNumber: ${{ parameters.versionNumber }} LogLevel: 'verbose' FailOnWarning: false DisableTelemetry: false - task: Assembly-Info-NetCore@3 displayName: ${{ parameters.displayName }} condition: ${{ eq(parameters.type, 'NetCore') }} inputs: Path: ${{ parameters.sourcePath }} FileNames: ${{ parameters.fileName }} InsertAttributes: false FileEncoding: 'auto' WriteBOM: false VersionNumber: ${{ parameters.versionNumber }} FileVersionNumber: ${{ parameters.versionNumber }} LogLevel: 'verbose' FailOnWarning: false DisableTelemetry: false # 新增:验证项目类型有效性,无效则失败流水线 - task: PowerShell@2 displayName: 验证项目类型有效性 condition: ${{ not(in(parameters.type, 'NetFw', 'NetCore', 'Xamarin')) }} inputs: targetType: 'inline' script: | Write-Error "无效的项目类型:${{ parameters.type }},允许的类型为NetFw、NetCore、Xamarin" exit 1
关键说明
- 新增的PowerShell任务通过
condition判断,仅当传入的type不在允许的取值列表中时执行 - 任务中通过
Write-Error输出错误信息,并使用exit 1让任务失败,从而触发流水线标记为失败状态 - 如果你的代理使用Linux/macOS,也可以替换为Bash任务,脚本改为:
echo "无效的项目类型:${{ parameters.type }},允许的类型为NetFw、NetCore、Xamarin" >&2 exit 1
内容的提问来源于stack exchange,提问作者JuanDYB
相关产品推荐
相关产品推荐

