0

我正在寻找为我们的一个 javascript 项目配置 sonarcloud 分析的步骤,其中 Azure DevOps 作为构建平台。

以下链接为我们提供了一些开始的信息。

https://www.npmjs.com/package/sonarqube-scanner

4

2 回答 2

3

您可以参考以下步骤:

1、创建sonarcloud服务器,并在服务器上创建SonarQube Project并配置Quality Gate。您可以参考本教程在 azure 上创建 sonarcloud 服务器。

2,并在您的 azure devops 项目上 设置sonarqube 服务连接。

项目设置-->服务连接(在Pipelines下)-->新服务连接--> 选择 Sonarqube。请参阅此处获取 sonarqube 安全令牌

3,转到 azure devops 市场,将Sonarqube 扩展安装到您的 azure devops 组织。

4、创建一个构建管道来构建你的项目。请查看文档以构建、测试和部署 JavaScript 和 Node.js 应用程序

5,在项目的根目录中创建一个包含以下内容的 sonar-project.properties 文件。点击这里了解更多信息

sonar.projectKey=projectKey
sonar.projectName=projectName
sonar.projectVersion=1.0
sonar.sources=mainsourcefilesfolder #eg. dist
sonar.sourceEncoding=UTF-8
sonar.tests=testcodesourcefolder

5,将以下三个声纳任务添加到管道的末尾(在构建任务之后)。对于以下 yaml 管道中的示例。

注意:SonarQube 仅在 master 分支上工作。请针对主分支运行您的管道。检查此线程以获取更多信息。

- task: Npm@1
  displayName: 'npm run build'
  inputs:
    command: 'custom'
    customCommand: 'run build'

- task: SonarQubePrepare@4
  inputs:
    SonarQube: sonarqubeConnectionName
    scannerMode: CLI
    configFile: sonar-project.properties

- task: SonarQubeAnalyze@4

- task: SonarQubePublish@4

然后,您应该能够在运行完构建管道后在声纳服务器上看到分析结果。

以上希望有帮助!

于 2020-04-01T08:35:49.497 回答
0

这是@Levi Lu-MSFT 对上述答案的补充。在第三步中,您可以额外安装SonarQube Build Breaker 扩展

然后,您可以在 SonarQube 分析之后在 YAML 中添加一个额外的步骤来运行构建断路器测试,以便在 SonarQube 分析失败时管道将中断。否则,即使分析失败,管道也会成功。

您可以使用Assitant 使用正确的 SonarConnectionName添加Breaker 任务或设置,如下所示

- task: sonar-buildbreaker@8
  inputs:
    SonarQube: sonarqubeConnectionName
于 2020-10-27T04:06:19.097 回答