【问题标题】:Change Azure DevOps pipeline build status when warnings are thrown引发警告时更改 Azure DevOps 管道构建状态
【发布时间】:2020-12-23 17:02:45
【问题描述】:

我们有一个 Azure DevOps 管道,它使用自托管的 Windows 代理和 Azure DevOps 服务器 2019。该管道运行我们的前端测试没有任何问题。但是,有时我们的 linting 步骤会发现它作为警告抛出的问题(例如未使用的变量)。这是我们希望它做的,但问题是这些警告没有被提升。因此,查看它们的唯一方法是查看构建执行。

我们可以通过向 linting 命令添加 vso 格式化程序来解决这个问题:npm run nx run-many -- --target="lint" --all --skip-nx-cache=true --parallel --format=vso。所以现在警告是这样抛出的:

如绿框所示,警告显示正常。但是,在红色圆圈中,构建、作业和 linting 任务的状态为成功。有没有办法可以将此构建、作业和任务标记为警告,以便我们知道进一步查看?感谢您的帮助,如果我可以提供更多信息,请告诉我。

【问题讨论】:

    标签: azure-devops azure-devops-pipelines


    【解决方案1】:

    你可以在管道末尾添加一个powershell任务,然后运行Rest API(Timeline - Get)遍历上一个任务中的警告信息。最后,您可以使用logging command 来设置管道状态

    这是 PowerShell 示例:

    $token = "PAT"
    
    $url="GET https://{instance}/{collection}/{project}/_apis/build/builds/$(build.buildid)/timeline?api-version=5.0"
    
    $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
    
    $count = 0
    
    $response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
    
    ForEach( $issues in $response.records.issues )
    {
      if($issues.type -eq "warning")
      {
        echo $issues.Message
        $count ++
      }
      
    } 
    
    echo $count
    
    if($count -ne 0 )
    { 
    
      Write-Host "##vso[task.complete result=SucceededWithIssues;]"
       
    }
    

    结果:

    【讨论】:

    • 效果非常好,非常感谢!我唯一需要更改的是从GET https://{instance}/{collection}/{project}/_apis/build/builds/$(build.buildid)/timeline?api-version=5.0http://{instance}/tfs/{collection}/{project}/_apis/build/builds/$(build.buildid)/timeline?api-version=5.0 的网址。我认为 GET 可能是一个错误,但其余的可能只是我的具体情况。 (还需要获得实际的 PAT)
    【解决方案2】:

    Microsoft "Build Quality Checks" 创建了 Azure DevOps Extension/Task 所以你可以使用它来设置一个额外的选项来强制特定的构建质量。

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 2022-12-14
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      相关资源
      最近更新 更多