【问题标题】:Get Sonarqube Analysis Status on a variable (GUI Job)获取变量的声纳分析状态(GUI 作业)
【发布时间】:2021-08-16 14:20:28
【问题描述】:

我找不到任何解决这个特殊需求的方法。

基本上我有一个 GUI 作业,我需要 Sonarqube 分析的状态,以便以后可以发送一个 POST 请求。

(我知道管道存在并且效果很好,但是因为一个特定的原因我需要它是 GUI)

在您拥有WaitForQualityGate.status() 的管道上,我尝试使用它但没有成功。

Example of what is desired

有什么见解吗?提前致谢

【问题讨论】:

    标签: jenkins sonarqube


    【解决方案1】:

    如果您的意思是说您希望根据 SonarQube 扫描状态在您的 Jenkins GUI 中弹出自定义变量消息,那么您需要:

    1. 克隆原始 Jenkins 源代码
    2. 添加自定义 HTML 按钮/div/图形
    3. 编译 Jenkins 代码
    4. 构建新代码
    5. 执行生成的JAR

    另外,您可以尝试 Jenkins 上提供的一些插件,这些插件可以让您呈现条件输出。没有承诺他们是否真的可以帮助您更改原始 GUI。

    任何替代的传统方法都无法满足您的 GUI 要求。

    【讨论】:

      【解决方案2】:

      您可以使用 SonarQube Rest API 获取状态。

      每当您通过 Jenkins Pipeline 运行 SonarQube 分析时,一旦分析成功,您将看到在工作区文件夹中创建了 report-task.txt

      注意: report-task.txt 文件的位置取决于生成它的工具。 mvn sonar:sonar 任务默认为路径 target/sonar。就我而言,我使用 sonarscanner 来分析 nodejs 项目。所以report-tast.txt的位置是.scannerwork

      现在,您将在report-task.txt 中获得 ceTaskUrlceTaskId。您可以使用该 ceTaskUrl 来获取 analysisId

      然后,您可以使用以下 api 通过 analysisId 获取质量门状态。

      http://<sonarqube_host>/api/qualitygates/project_status?analysisId=$ANALYSIS_ID"

      现在,尝试将上述 API 的 curl 输出放入一个变量中。

      【讨论】:

      • 成功了!我对为此使用 API 持怀疑态度,但它的作用就像一个魅力。非常感谢
      猜你喜欢
      • 1970-01-01
      • 2017-04-20
      • 2018-09-27
      • 1970-01-01
      • 2015-12-02
      • 2013-06-02
      • 1970-01-01
      • 2016-03-21
      • 2012-03-21
      相关资源
      最近更新 更多