我们最近升级到了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。删除该文件可解决此问题。
答案 0 :(得分:0)
如果构建目录包含先前构建遗留的report-task.txt
文件,则可能发生此错误。通过在构建配置中将report-task.txt
选项设置为Clean
,确保构建目录中没有true
文件。