获取变量的 Sonarqube 分析状态(GUI 作业)

Get Sonarqube Analysis Status on a variable (GUI Job)

我找不到满足这一特殊需求的任何解决方案。

基本上我有一个 GUI 作业,我需要 Sonarqube Analysis 的状态,这样我稍后可以用它发送一个 POST 请求。

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

在管道上你有 WaitForQualityGate.status(),我试过使用它但没有成功。

Example of what is desired

有什么见解吗?提前致谢

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

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

否则,您可以尝试 Jenkins 上可用的一些插件,这些插件可以使您能够呈现条件输出。没有关于他们是否真的可以帮助您更改原始 GUI 的承诺。

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

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

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

Note: The location of report-task.txt file depends on the tool that was used to generate it. The mvn sonar:sonar task defaults to path target/sonar. In my case, I used sonarscanner to analyse a nodejs project. So the location of report-tast.txt is .scannerwork.

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

然后,您可以使用下面的 api 通过 analysisId.

获取质量门状态

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

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