尝试在 VSTS 的 YAML 构建模板中添加 SonarQube - SonarAnalysis 任务作为构建任务

Posted

技术标签:

【中文标题】尝试在 VSTS 的 YAML 构建模板中添加 SonarQube - SonarAnalysis 任务作为构建任务【英文标题】:Trying to add SonarQube - SonarAnalysis task in YAML build template for VSTS as a build task 【发布时间】:2018-11-17 06:51:04 【问题描述】:

Phase LibraryBuildGated:步进输入 SonarQube 引用了无法找到的端点 17xxxxc3-4xx0-4xx4-9xx2-617fxxxxxxxx。服务端点不存在或未被授权使用

谢谢 - 编辑问题

【问题讨论】:

SonarQube服务器端,查看后台任务管理页面,查看分析报告处理是否成功。 我目前无权访问管理页面来检查后台任务 - 但我想知道为什么没有任何文档或步骤列出通过 YAML 模板设置声纳项目的任何位置。我所看到的只是基于 UI 的示例——就我从 VSTS 构建日志中看到的而言,分析是成功的,并且与 Visual Studio 构建中的构建警告相匹配 可以分享一下OneDrive上的详细日志吗? (将 system.debug 变量设置为 true,然后进行队列构建)。另一方面,您可以参考以下步骤获取 YAML 代码: 1. 添加 SonarQube 分析任务 2. 指定必要信息 3. 点击查看 YAML。 谢谢@starianchen-MSFT @Julien 我实际上是VSTS的问题,Phase LibraryBuildGated: Step input SonarQube references endpoint 17xxxxc3-4xx0-4xx4-9xx2-617fxxxxxxxx which could not be found. The service endpoint does not exist or has not been authorized for use我现在不知道了 这是 YAML 构建的限制。尝试引用端点时,您必须在主分支上进行。我猜你是在一个特性分支上试验 YAML 构建。 【参考方案1】:

先决条件

    我在 Linux WebApp 上的 Azure 中设置了 SonarQube 服务器

    我已经安装了以下 Azure DevOps [扩展](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube

    我已在 Azure 中设置了与我的 SonarQube 服务器的 SonarQube 服务连接(“SonarQube 服务连接”)。您将在“项目设置”>“管道”>“服务器连接”中找到此选项

在 Yaml 中准备对 SonarQube 的分析:

- task: SonarSource.sonarqube.15B84CA1-B62F-4A2A-A403-89B77A063157.SonarQubePrepare@4
  displayName: 'Prepare analysis on SonarQube'
  inputs:
    SonarQube: 'SonarQube Service Connection'
    projectKey: ProjectKey
    projectName: ProjectName

在 Yaml 中运行代码分析:

- task: SonarSource.sonarqube.6D01813A-9589-4B15-8491-8164AEB38055.SonarQubeAnalyze@4
  displayName: 'Run Code Analysis'

在 Yaml 中发布 Quality Gate 结果:

- task: SonarSource.sonarqube.291ed61f-1ee4-45d3-b1b0-bf822d9095ef.SonarQubePublish@4
  displayName: 'Publish Quality Gate Result'

【讨论】:

您从哪里获得 sonarSource 任务名称?我在看这里,看不到从哪里获得有关设置任务的信息。docs.microsoft.com/en-gb/azure/devops/pipelines/tasks/… 在回答我之前的评论时,我意识到您可以选择现有的管道任务(在可视化设计器中创建)并单击“查看 YAML”以将任务视为 YAML。【参考方案2】:

解决方案: 涵盖大多数情况的解决方法是,导航到 Web 中的构建定义,将默认分支切换到包含服务端点引用的分支,保存,恢复到所需的设置,再次保存。保存定义的行为会加载文件(从默认分支)并授权发现的资源。 - 由 MSFT 推荐

【讨论】:

以上是关于尝试在 VSTS 的 YAML 构建模板中添加 SonarQube - SonarAnalysis 任务作为构建任务的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VSTS CI/CD 发送的构建电子邮件中添加 SonarQube 分析报告?

VSTS:无法添加触发发布的构建标签

Xamarin.iOS VSTS 无法将临时钥匙串添加到钥匙串搜索路径

Azure 构建管道 yaml 模板参考

如何在 VSTS 构建期间使用 OctoPack 避免 XML 文件中的无效字符?

Microsoft.AspNet.Identity.EntityFramework 上的 vsts 构建失败