Sonarqube v.4 TFS任务“发布质量门结果”引发错误“无法获取ID的任务”

时间:2018-07-10 18:29:27

标签: tfs sonarqube

我们最近升级到了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。删除该文件可解决此问题。

1 个答案:

答案 0 :(得分:0)

如果构建目录包含先前构建遗留的report-task.txt文件,则可能发生此错误。通过在构建配置中将report-task.txt选项设置为Clean,确保构建目录中没有true文件。