• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • warnings-ng-plugin
    • None
    • Jenkins 2.499, version 12.2.0 and version 12.3.0 of the plugin

      Hi,

      If I publish multiple reports of a parser with differents id/name, links in build are broken and reports are published in wrong dir

      To test (tried with other parsers, same result)

      recordIssues tools: [junitParser(pattern: "a.xml", id: "a", name: "a")]
      recordIssues tools: [junitParser(pattern: "b.xml", id: "b", name: "b")]

       

          [JENKINS-75344] Multiple reports with same parser fails

          Julien added a comment -

          Just for information, I test with only on report and same behavior, in fact, custom id is never used to store report

          Julien added a comment - Just for information, I test with only on report and same behavior, in fact, custom id is never used to store report

          Ulli Hafner added a comment -

          Ulli Hafner added a comment - Hmm, this is strange. Can you test with the calls that I am using in my test: https://github.com/jenkinsci/warnings-ng-plugin/blob/af79bad969ee064d524a74b1c5081bb8dff9a952/plugin/src/test/java/io/jenkins/plugins/analysis/warnings/steps/StepsITest.java#L583-L609

          Ulli Hafner added a comment -

          What is missing: what happens when you click on the link? What do you mean with broken?

          Ulli Hafner added a comment - What is missing: what happens when you click on the link? What do you mean with broken?

          Ulli Hafner added a comment - - edited

          Do you have access to the build.xml file in the Jenkins controller (/jenkins/job/job-name/builds/build-nr/build.xml)? Can you show what is stored in this file? There should be one part similar to:

              <io.jenkins.plugins.analysis.core.model.ResultAction plugin="warnings-ng@12.2.0">
                <result>
                  <id>checkstyle</id>
                  <totals>
                    <totalErrorSize>0</totalErrorSize>
                    <totalHighSize>0</totalHighSize>
                    <totalNormalSize>0</totalNormalSize>
                    <totalLowSize>0</totalLowSize>
                    <totalModifiedSize>0</totalModifiedSize>
                    <newErrorSize>0</newErrorSize>
                    <newHighSize>0</newHighSize>
                    <newNormalSize>0</newNormalSize>
                    <newLowSize>0</newLowSize>
                    <newModifiedSize>0</newModifiedSize>
                    <deltaErrorSize>0</deltaErrorSize>
                    <deltaHighSize>0</deltaHighSize>
                    <deltaNormalSize>0</deltaNormalSize>
                    <deltaLowSize>0</deltaLowSize>
                    <fixedSize>0</fixedSize>
                    <totalSizeBySeverity>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                    </totalSizeBySeverity>
                    <newSizeBySeverity>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                    </newSizeBySeverity>
                  </totals>
                  <sizePerOrigin>
                    <entry>
                      <string>checkstyle</string>
                      <int>0</int>
                    </entry>
                  </sizePerOrigin>
                  <errors/>
                  <messages>
                    <string>Searching for all files in &apos;/home/jenkins/agent/workspace/coverage-model-tags&apos; that match the pattern &apos;target/**/checkstyle-result.xml&apos;</string>
                    <string>Traversing of symbolic links: enabled</string>
                    <string>-&gt; found 1 file</string>
                    <string>Successfully parsed file /home/jenkins/agent/workspace/coverage-model-tags/target/checkstyle-result.xml</string>
                    <string>-&gt; found 0 issues (skipped 0 duplicates)</string>
                    <string>Successfully processed file &apos;target/checkstyle-result.xml&apos;</string>
                    <string>Skipping post processing</string>
                    <string>No filter has been set, publishing all 0 issues</string>
                    <string>Extracting repository forensics for 0 affected files (files in repository: 115)</string>
                    <string>-&gt; 0 affected files processed</string>
                    <string>Obtaining reference build from reference recorder</string>
                    <string>-&gt; No reference build recorded</string>
                    <string>No valid reference build found</string>
                    <string>All reported issues will be considered outstanding</string>
                    <string>Evaluating quality gates</string>
                    <string>-&gt; All quality gates have been passed</string>
                    <string>-&gt; Details for each quality gate:</string>
                    <string>   - [Total (any severity)]: ≪Success≫ - (Actual value: 0, Quality gate: 10.00)</string>
                    <string>   - [Total (any severity)]: ≪Success≫ - (Actual value: 0, Quality gate: 100.00)</string>
                    <string>Health report is disabled - skipping</string>
                    <string>Created analysis result for 0 issues (found 0 new issues, fixed 0 issues)</string>
                    <string>Attaching ResultAction with ID &apos;checkstyle&apos; to build &apos;coverage-model-tags #1&apos;.</string>
                  </messages>
                  <referenceBuildId></referenceBuildId>
                  <noIssuesSinceBuild>1</noIssuesSinceBuild>
                  <successfulSinceBuild>1</successfulSinceBuild>
                  <qualityGateResult plugin="plugin-util-api@6.0.0">
                    <overallStatus>PASSED</overallStatus>
                    <items>
                      <item>
                        <status>PASSED</status>
                        <qualityGate class="io.jenkins.plugins.analysis.core.util.WarningsQualityGate" plugin="warnings-ng@12.2.0">
                          <threshold>10.0</threshold>
                          <criticality>NOTE</criticality>
                          <type>TOTAL</type>
                        </qualityGate>
                        <actualValue>0</actualValue>
                      </item>
                      <item>
                        <status>PASSED</status>
                        <qualityGate class="io.jenkins.plugins.analysis.core.util.WarningsQualityGate" plugin="warnings-ng@12.2.0">
                          <threshold>100.0</threshold>
                          <criticality>ERROR</criticality>
                          <type>TOTAL</type>
                        </qualityGate>
                        <actualValue>0</actualValue>
                      </item>
                    </items>
                  </qualityGateResult>
                </result>
                <healthDescriptor>
                  <healthy>0</healthy>
                  <unhealthy>0</unhealthy>
                  <minimumSeverity reference="../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity"/>
                </healthDescriptor>
                <id>checkstyle</id>
                <name></name>
                <icon></icon>
                <charset>UTF-8</charset>
                <trendChartType>AGGREGATION_TOOLS</trendChartType>
              </io.jenkins.plugins.analysis.core.model.ResultAction>
          
          

          Ulli Hafner added a comment - - edited Do you have access to the build.xml file in the Jenkins controller (/jenkins/job/job-name/builds/build-nr/build.xml)? Can you show what is stored in this file? There should be one part similar to: <io.jenkins.plugins.analysis.core.model.ResultAction plugin= "warnings-ng@12.2.0" > <result> <id> checkstyle </id> <totals> <totalErrorSize> 0 </totalErrorSize> <totalHighSize> 0 </totalHighSize> <totalNormalSize> 0 </totalNormalSize> <totalLowSize> 0 </totalLowSize> <totalModifiedSize> 0 </totalModifiedSize> <newErrorSize> 0 </newErrorSize> <newHighSize> 0 </newHighSize> <newNormalSize> 0 </newNormalSize> <newLowSize> 0 </newLowSize> <newModifiedSize> 0 </newModifiedSize> <deltaErrorSize> 0 </deltaErrorSize> <deltaHighSize> 0 </deltaHighSize> <deltaNormalSize> 0 </deltaNormalSize> <deltaLowSize> 0 </deltaLowSize> <fixedSize> 0 </fixedSize> <totalSizeBySeverity> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> </totalSizeBySeverity> <newSizeBySeverity> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> <entry> <edu.hm.hafner.analysis.Severity reference= "../../../../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity" /> <int> 0 </int> </entry> </newSizeBySeverity> </totals> <sizePerOrigin> <entry> <string> checkstyle </string> <int> 0 </int> </entry> </sizePerOrigin> <errors/> <messages> <string> Searching for all files in &apos;/home/jenkins/agent/workspace/coverage-model-tags&apos; that match the pattern &apos;target/**/checkstyle-result.xml&apos; </string> <string> Traversing of symbolic links: enabled </string> <string> -&gt; found 1 file </string> <string> Successfully parsed file /home/jenkins/agent/workspace/coverage-model-tags/target/checkstyle-result.xml </string> <string> -&gt; found 0 issues (skipped 0 duplicates) </string> <string> Successfully processed file &apos;target/checkstyle-result.xml&apos; </string> <string> Skipping post processing </string> <string> No filter has been set, publishing all 0 issues </string> <string> Extracting repository forensics for 0 affected files (files in repository: 115) </string> <string> -&gt; 0 affected files processed </string> <string> Obtaining reference build from reference recorder </string> <string> -&gt; No reference build recorded </string> <string> No valid reference build found </string> <string> All reported issues will be considered outstanding </string> <string> Evaluating quality gates </string> <string> -&gt; All quality gates have been passed </string> <string> -&gt; Details for each quality gate: </string> <string> - [Total (any severity)]: ≪Success≫ - (Actual value: 0, Quality gate: 10.00) </string> <string> - [Total (any severity)]: ≪Success≫ - (Actual value: 0, Quality gate: 100.00) </string> <string> Health report is disabled - skipping </string> <string> Created analysis result for 0 issues (found 0 new issues, fixed 0 issues) </string> <string> Attaching ResultAction with ID &apos;checkstyle&apos; to build &apos;coverage-model-tags #1&apos;. </string> </messages> <referenceBuildId> </referenceBuildId> <noIssuesSinceBuild> 1 </noIssuesSinceBuild> <successfulSinceBuild> 1 </successfulSinceBuild> <qualityGateResult plugin= "plugin-util-api@6.0.0" > <overallStatus> PASSED </overallStatus> <items> <item> <status> PASSED </status> <qualityGate class= "io.jenkins.plugins.analysis.core.util.WarningsQualityGate" plugin= "warnings-ng@12.2.0" > <threshold> 10.0 </threshold> <criticality> NOTE </criticality> <type> TOTAL </type> </qualityGate> <actualValue> 0 </actualValue> </item> <item> <status> PASSED </status> <qualityGate class= "io.jenkins.plugins.analysis.core.util.WarningsQualityGate" plugin= "warnings-ng@12.2.0" > <threshold> 100.0 </threshold> <criticality> ERROR </criticality> <type> TOTAL </type> </qualityGate> <actualValue> 0 </actualValue> </item> </items> </qualityGateResult> </result> <healthDescriptor> <healthy> 0 </healthy> <unhealthy> 0 </unhealthy> <minimumSeverity reference= "../../../io.jenkins.plugins.analysis.core.model.ResultAction/result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity" /> </healthDescriptor> <id> checkstyle </id> <name> </name> <icon> </icon> <charset> UTF-8 </charset> <trendChartType> AGGREGATION_TOOLS </trendChartType> </io.jenkins.plugins.analysis.core.model.ResultAction>

          Julien added a comment -

          I tested with same code, if no file match pattern or if file is empty, everything is ok, links on left column and on central part use custom id (http://.../job/test-pipeline/263/custom-id/info/) and report is available

          But if file exists and is not empty, it's ko.
          Link on central part is ok (http://.../job/test-pipeline/263/custom-id/info/) but on click I'm redirected to build page, there is no report.
          And link on left column don't use custom id (http://.../job/test-pipeline/263/javadoc-warnings/info/) but on click report is available.

          For information, I tried to put custom id name on rool level, on tool, I tried to use scan followed by publish, I tried agregation... nothing to do, reports are always on wrong url on only the first one of each parser is available.

          The build.xml file

                  <io.jenkins.plugins.analysis.core.model.ResultAction plugin="warnings-ng@12.3.0">
                <result>
                  <id>custom-id</id>
                  <totals>
                    <totalErrorSize>0</totalErrorSize>
                    <totalHighSize>0</totalHighSize>
                    <totalNormalSize>0</totalNormalSize>
                    <totalLowSize>0</totalLowSize>
                    <totalModifiedSize>0</totalModifiedSize>
                    <newErrorSize>0</newErrorSize>
                    <newHighSize>0</newHighSize>
                    <newNormalSize>0</newNormalSize>
                    <newLowSize>0</newLowSize>
                    <newModifiedSize>0</newModifiedSize>
                    <deltaErrorSize>0</deltaErrorSize>
                    <deltaHighSize>0</deltaHighSize>
                    <deltaNormalSize>0</deltaNormalSize>
                    <deltaLowSize>0</deltaLowSize>
                    <fixedSize>0</fixedSize>
                    <totalSizeBySeverity>
                      <entry>
                        <edu.hm.hafner.analysis.Severity plugin="analysis-model-api@13.2.0">
                          <name>HIGH</name>
                        </edu.hm.hafner.analysis.Severity>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity plugin="analysis-model-api@13.2.0">
                          <name>LOW</name>
                        </edu.hm.hafner.analysis.Severity>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity plugin="analysis-model-api@13.2.0">
                          <name>ERROR</name>
                        </edu.hm.hafner.analysis.Severity>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity plugin="analysis-model-api@13.2.0">
                          <name>NORMAL</name>
                        </edu.hm.hafner.analysis.Severity>
                        <int>0</int>
                      </entry>
                    </totalSizeBySeverity>
                    <newSizeBySeverity>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                      <entry>
                        <edu.hm.hafner.analysis.Severity reference="../../../totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity"/>
                        <int>0</int>
                      </entry>
                    </newSizeBySeverity>
                  </totals>
                  <sizePerOrigin>
                    <entry>
                      <string>javadoc-warnings</string>
                      <int>0</int>
                    </entry>
                  </sizePerOrigin>
                  <errors/>
                  <messages>
                    <string>Searching for all files in &apos;/var/lib/jenkins/workspace/test-pipeline&apos; that match the pattern &apos;**/*issues.txt&apos;</string>
                    <string>Traversing of symbolic links: enabled</string>
                    <string>-&gt; found 1 file</string>
                    <string>Successfully parsed file /var/lib/jenkins/workspace/test-pipeline/issues.txt</string>
                    <string>-&gt; found 0 issues (skipped 0 duplicates)</string>
                    <string>Successfully processed file &apos;issues.txt&apos;</string>
                    <string>Skipping post processing</string>
                    <string>No filter has been set, publishing all 0 issues</string>
                    <string>Repository miner is not configured, skipping repository mining</string>
                    <string>Reference build recorder is not configured</string>
                    <string>No valid reference build found</string>
                    <string>All reported issues will be considered outstanding</string>
                    <string>No quality gates have been set - skipping</string>
                    <string>Health report is disabled - skipping</string>
                    <string>Created analysis result for 0 issues (found 0 new issues, fixed 0 issues)</string>
                    <string>Attaching ResultAction with ID &apos;custom-id&apos; to build &apos;test-pipeline #270&apos;.</string>
                  </messages>
                  <referenceBuildId></referenceBuildId>
                  <noIssuesSinceBuild>261</noIssuesSinceBuild>
                  <successfulSinceBuild>-1</successfulSinceBuild>
                  <qualityGateResult plugin="plugin-util-api@6.0.0">
                    <overallStatus>INACTIVE</overallStatus>
                    <items/>
                  </qualityGateResult>
                </result>
                <healthDescriptor>
                  <healthy>0</healthy>
                  <unhealthy>0</unhealthy>
                  <minimumSeverity reference="../../result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity"/>
                </healthDescriptor>
                <id>custom-id</id>
                <name>custom-name</name>
                <icon>custom-icon</icon>
                <charset>UTF-8</charset>
                <trendChartType>AGGREGATION_TOOLS</trendChartType>
              </io.jenkins.plugins.analysis.core.model.ResultAction>
            

          Julien added a comment - I tested with same code, if no file match pattern or if file is empty, everything is ok, links on left column and on central part use custom id ( http://.../job/test-pipeline/263/custom-id/info/ ) and report is available But if file exists and is not empty, it's ko. Link on central part is ok ( http://.../job/test-pipeline/263/custom-id/info/ ) but on click I'm redirected to build page, there is no report. And link on left column don't use custom id ( http://.../job/test-pipeline/263/javadoc-warnings/info/ ) but on click report is available. For information, I tried to put custom id name on rool level, on tool, I tried to use scan followed by publish, I tried agregation... nothing to do, reports are always on wrong url on only the first one of each parser is available. The build.xml file        <io.jenkins.plugins.analysis.core.model.ResultAction plugin= "warnings-ng@12.3.0" >       <result>         <id>custom-id</id>         <totals>           <totalErrorSize>0</totalErrorSize>           <totalHighSize>0</totalHighSize>           <totalNormalSize>0</totalNormalSize>           <totalLowSize>0</totalLowSize>           <totalModifiedSize>0</totalModifiedSize>           <newErrorSize>0</newErrorSize>           <newHighSize>0</newHighSize>           <newNormalSize>0</newNormalSize>           <newLowSize>0</newLowSize>           <newModifiedSize>0</newModifiedSize>           <deltaErrorSize>0</deltaErrorSize>           <deltaHighSize>0</deltaHighSize>           <deltaNormalSize>0</deltaNormalSize>           <deltaLowSize>0</deltaLowSize>           <fixedSize>0</fixedSize>           <totalSizeBySeverity>             <entry>               <edu.hm.hafner.analysis.Severity plugin= "analysis-model-api@13.2.0" >                 <name>HIGH</name>               </edu.hm.hafner.analysis.Severity>               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity plugin= "analysis-model-api@13.2.0" >                 <name>LOW</name>               </edu.hm.hafner.analysis.Severity>               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity plugin= "analysis-model-api@13.2.0" >                 <name>ERROR</name>               </edu.hm.hafner.analysis.Severity>               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity plugin= "analysis-model-api@13.2.0" >                 <name>NORMAL</name>               </edu.hm.hafner.analysis.Severity>               < int >0</ int >             </entry>           </totalSizeBySeverity>           <newSizeBySeverity>             <entry>               <edu.hm.hafner.analysis.Severity reference= "../../../totalSizeBySeverity/entry/edu.hm.hafner.analysis.Severity" />               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity reference= "../../../totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity" />               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity reference= "../../../totalSizeBySeverity/entry[3]/edu.hm.hafner.analysis.Severity" />               < int >0</ int >             </entry>             <entry>               <edu.hm.hafner.analysis.Severity reference= "../../../totalSizeBySeverity/entry[4]/edu.hm.hafner.analysis.Severity" />               < int >0</ int >             </entry>           </newSizeBySeverity>         </totals>         <sizePerOrigin>           <entry>             <string>javadoc-warnings</string>             < int >0</ int >           </entry>         </sizePerOrigin>         <errors/>         <messages>           <string>Searching for all files in &apos;/ var /lib/jenkins/workspace/test-pipeline&apos; that match the pattern &apos;**/*issues.txt&apos;</string>           <string>Traversing of symbolic links: enabled</string>           <string>-&gt; found 1 file</string>           <string>Successfully parsed file / var /lib/jenkins/workspace/test-pipeline/issues.txt</string>           <string>-&gt; found 0 issues (skipped 0 duplicates)</string>           <string>Successfully processed file &apos;issues.txt&apos;</string>           <string>Skipping post processing</string>           <string>No filter has been set, publishing all 0 issues</string>           <string>Repository miner is not configured, skipping repository mining</string>           <string>Reference build recorder is not configured</string>           <string>No valid reference build found</string>           <string>All reported issues will be considered outstanding</string>           <string>No quality gates have been set - skipping</string>           <string>Health report is disabled - skipping</string>           <string>Created analysis result for 0 issues (found 0 new issues, fixed 0 issues)</string>           <string>Attaching ResultAction with ID &apos;custom-id&apos; to build &apos;test-pipeline #270&apos;.</string>         </messages>         <referenceBuildId></referenceBuildId>         <noIssuesSinceBuild>261</noIssuesSinceBuild>         <successfulSinceBuild>-1</successfulSinceBuild>         <qualityGateResult plugin= "plugin-util-api@6.0.0" >           <overallStatus>INACTIVE</overallStatus>           <items/>         </qualityGateResult>       </result>       <healthDescriptor>         <healthy>0</healthy>         <unhealthy>0</unhealthy>         <minimumSeverity reference= "../../result/totals/totalSizeBySeverity/entry[2]/edu.hm.hafner.analysis.Severity" />       </healthDescriptor>       <id>custom-id</id>       <name>custom-name</name>       <icon>custom-icon</icon>       <charset>UTF-8</charset>       <trendChartType>AGGREGATION_TOOLS</trendChartType>     </io.jenkins.plugins.analysis.core.model.ResultAction>  

          Stephan Senkbeil added a comment - - edited

          I have the same or a similar issue on our instance.

          If a log file is matched according to the pattern, it seams to me that the tool ID is overwritten by the default ID of the tool, which results in links in the sidebar pointing to /gcc in our case.

          If the log file is not found, the links are correct and use the custom ID of the tool that we set.

          Please find below a pipeline with which I can reproduce the issue.

          If I comment out the writeFile line, links are correct, otherwise all links point to /gcc.

          pipeline {
             stages {
                  stage('recordIssues issue'){
                      steps{
                          script{
                              def builds = [
                                      [id: "debug", name: "Debug", log: "debug.log"],
                                      [id: "release",name: "Release",  log: "release.log"],
                                      [id: "amal",name: "Amal",  log: "amal.log"],
                                      [id: "releaselib",name: "Releaselib",  log: "releaselib.log"],
                                  ]
                                  
                              def tools = []
                              
                              builds.each{
                                  tools.add(
                                      gcc(id: it.id, name: it.name, pattern: it.log)
                                  )
                                  writeFile file: it.log, text: 'wurst'
                              }
                              
                              recordIssues enabledForFailure: true, qualityGates: [
                                  [threshold: 1, type: 'TOTAL', unstable: true],
                                  [threshold: 1, type: 'TOTAL_ERROR', unstable: false]
                                  ],
                                  tools: tools
                          }
                      }
                  }
              }
          }
          

          Maybe it is worth mentioning that additionally the following warning message is displayed in the build log:
          Do not set id, name, or icon for both the tool and the recorder
          However, as far as I understand it, in my test pipeline only the name and id for the tool is set, but not for the recorder.

          Please let me know if you need any further information.

          PS: I think this issue is generally the same as JENKINS-75360

          Stephan Senkbeil added a comment - - edited I have the same or a similar issue on our instance. If a log file is matched according to the pattern, it seams to me that the tool ID is overwritten by the default ID of the tool, which results in links in the sidebar pointing to /gcc in our case. If the log file is not found, the links are correct and use the custom ID of the tool that we set. Please find below a pipeline with which I can reproduce the issue. If I comment out the writeFile line, links are correct, otherwise all links point to /gcc . pipeline { stages { stage( 'recordIssues issue' ){ steps{ script{ def builds = [ [id: "debug" , name: "Debug" , log: "debug.log" ], [id: "release" ,name: "Release" , log: "release.log" ], [id: "amal" ,name: "Amal" , log: "amal.log" ], [id: "releaselib" ,name: "Releaselib" , log: "releaselib.log" ], ] def tools = [] builds.each{ tools.add( gcc(id: it.id, name: it.name, pattern: it.log) ) writeFile file: it.log, text: 'wurst' } recordIssues enabledForFailure: true , qualityGates: [ [threshold: 1, type: 'TOTAL' , unstable: true ], [threshold: 1, type: 'TOTAL_ERROR' , unstable: false ] ], tools: tools } } } } } Maybe it is worth mentioning that additionally the following warning message is displayed in the build log: Do not set id, name, or icon for both the tool and the recorder However, as far as I understand it, in my test pipeline only the name and id for the tool is set, but not for the recorder. Please let me know if you need any further information. PS: I think this issue is generally the same as JENKINS-75360

            drulli Ulli Hafner
            julienalltricks Julien
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: