[英]Sonarqube v.4 TFS task “Publish Analysis Result” throw error “Could not fetch metrics”
[英]Sonarqube v.4 TFS task “Publish Quality Gate Result” throws error “Could not fetch task for ID”
我们最近升级到SonarQube社区版7.1版(内部版本11001)。 我们还使用了TFS SonarQube扩展版本4.3.1。 “发布质量门结果”构建步骤失败,并显示以下消息:
[SQ] API GET '/api/ce/task' failed, status code was: 404
[SQ] Could not fetch task for ID 'AWRg8urbC5nyQrURbDKL'
这仅在linux build agent上发生。 Windows构建代理不会发生这种情况。 有趣的是,“运行代码分析”步骤的输出似乎指示不同的任务ID:
=========== Run Code Analysis Output ===========
More about the report processing at http://sonarqube:9000/api/ce/task?id=AWSFWzxYmaH45QFNcZ_C
=========== Publish Quality Gate Result Output ===========
[SQ] Could not fetch task for ID 'AWRg8urbC5nyQrURbDKL'
来自“代码分析”步骤的URL有效,并返回一个json响应,其中包含有关任务的所有数据。 如果用发布步骤中的ID替换URL中的ID,则会收到错误json响应,并显示消息“找不到任务的活动”。
如何解决此问题,以使构建步骤不会失败?
更新-已修复
在构建中设置system.debug=true
后,我注意到有两个report-task.txt文件正在由“发布质量门结果任务”处理: /agent/_work/2/.sonarqube/out/.sonar/report-task.txt
和/agent/_work/2/s/.scannerwork/report-task.txt
。 任务读取这些文件的内容,以获取SQ分析的URL和任务ID。 第二个是从旧版本中遗留下来的,其中包含无效的任务ID。 删除该文件可解决此问题。
如果构建目录包含先前构建遗留下来的report-task.txt
文件,则会发生此错误。 通过在构建配置中将Clean
选项设置为true
,确保在构建目录中没有report-task.txt
文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.