You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/02/02 09:57:02 UTC
[maven-artifact-plugin] 01/01: [MARTIFACT-35] Compare goal should fail build when comparison was unsuccessful
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MARTIFACT-35
in repository https://gitbox.apache.org/repos/asf/maven-artifact-plugin.git
commit 91ad3385f22f1b548d592e4ba75393db15eb825e
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Thu Feb 2 10:42:51 2023 +0100
[MARTIFACT-35] Compare goal should fail build when comparison was unsuccessful
---
src/it/compare-mono/invoker.properties | 1 +
.../maven/plugins/artifact/buildinfo/CompareMojo.java | 17 +++++++++++------
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/it/compare-mono/invoker.properties b/src/it/compare-mono/invoker.properties
index 339a145..fe14eb3 100644
--- a/src/it/compare-mono/invoker.properties
+++ b/src/it/compare-mono/invoker.properties
@@ -17,3 +17,4 @@
invoker.goals.1=clean install
invoker.goals.2=clean package artifact:compare
+invoker.buildResult.2=failure
diff --git a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
index a6b2e6d..78bef86 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
@@ -192,12 +192,12 @@ public class CompareMojo
if ( ko + missing > 0 )
{
- getLog().warn( "Reproducible Build output summary: " + MessageUtils.buffer().success( ok + " files ok" )
+ getLog().error( "Reproducible Build output summary: " + MessageUtils.buffer().success( ok + " files ok" )
+ ", " + MessageUtils.buffer().failure( ko + " different" )
- + ( ( missing == 0 ) ? "" : ( ", " + MessageUtils.buffer().warning( missing + " missing" ) ) ) );
- getLog().warn( "see " + MessageUtils.buffer().project( "diff " + relative( referenceBuildinfo ) + " "
+ + ( ( missing == 0 ) ? "" : ( ", " + MessageUtils.buffer().failure( missing + " missing" ) ) ) );
+ getLog().error( "see " + MessageUtils.buffer().project( "diff " + relative( referenceBuildinfo ) + " "
+ relative( buildinfoFile ) ).toString() );
- getLog().warn( "see also https://maven.apache.org/guides/mini/guide-reproducible-builds.html" );
+ getLog().error( "see also https://maven.apache.org/guides/mini/guide-reproducible-builds.html" );
}
else
{
@@ -241,6 +241,11 @@ public class CompareMojo
}
copyAggregateToRoot( buildcompare );
+
+ if ( ko + missing > 0 )
+ {
+ throw new MojoExecutionException( "Build artifacts are not reproducible" );
+ }
}
// { filename, diffoscope }
@@ -268,8 +273,8 @@ public class CompareMojo
if ( issue != null )
{
String diffoscope = diffoscope( artifact, referenceDir );
- getLog().warn( issue + " mismatch " + MessageUtils.buffer().strong( actualFilename ) + ": investigate with "
- + MessageUtils.buffer().project( diffoscope ) );
+ getLog().error( issue + " mismatch " + MessageUtils.buffer().strong( actualFilename )
+ + ": investigate with " + MessageUtils.buffer().project( diffoscope ) );
return new String[] { actualFilename, diffoscope };
}
return new String[] { actualFilename, null };