Skip to content

Commit 5942826

Browse files
authored
Add quarkus-artifact.properties as an output of quarkus:build (#1280)
* Add quarkus-artifact.properties as an output of quarkus:build When running ITs for native, we need quarkus-artifact.properties to be around so it needs to be part of the cache. Also make it an input of Failsafe. This file contains a relative path to the binary to run and a few additional metadata such as the full GraalVM version. Whenever this version has changed, we need to run the tests again so it makes sense to make it an input. Note that we will need quarkusio/quarkus#41587 to be in so that quarkus-artifact.properties doesn't contain a timestamp. Signed-off-by: Guillaume Smet <[email protected]> * Do not register quarkus-artifact.properties as input of Failsafe Signed-off-by: Guillaume Smet <[email protected]> --------- Signed-off-by: Guillaume Smet <[email protected]>
1 parent 7229aef commit 5942826

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

quarkus-build-caching-extension/src/main/java/com/gradle/QuarkusBuildCache.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ final class QuarkusBuildCache {
4747
// Quarkus' properties which should be ignored (the JDK / GraalVM version are extra inputs)
4848
private static final List<String> QUARKUS_IGNORED_PROPERTIES = Arrays.asList(QUARKUS_CONFIG_KEY_GRAALVM_HOME, QUARKUS_CONFIG_KEY_JAVA_HOME);
4949

50+
// this file contains some metadata required for running the Failsafe tests
51+
// it also contains the full GraalVM version
52+
private static final String QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME = "target/quarkus-artifact.properties";
53+
5054
void configureBuildCache(BuildCacheApi buildCache) {
5155
buildCache.registerNormalizationProvider(context -> {
5256
QuarkusExtensionConfiguration extensionConfiguration = new QuarkusExtensionConfiguration(context.getProject());
@@ -63,6 +67,8 @@ void configureBuildCache(BuildCacheApi buildCache) {
6367
});
6468
context.withPlugin("maven-failsafe-plugin", () -> {
6569
configureQuarkusExtraTestInputs(context, extensionConfiguration);
70+
// For now, we don't add this one as an input but it might be a good idea to add it in the future
71+
//context.inputs(inputs -> addQuarkusArtifactPropertiesInput(inputs, extensionConfiguration));
6672
});
6773
});
6874
}
@@ -264,6 +270,10 @@ private void addQuarkusDependencyChecksumsInput(MojoMetadataProvider.Context.Inp
264270
inputs.fileSet("quarkusDependencyChecksums", new File(extensionConfiguration.getCurrentDependencyChecksumsFileName()), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
265271
}
266272

273+
private void addQuarkusArtifactPropertiesInput(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
274+
inputs.fileSet("quarkusArtifactProperties", new File(QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
275+
}
276+
267277
private void addQuarkusDependenciesInputs(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
268278
File quarkusDependencyFile = new File(extensionConfiguration.getCurrentDependencyFileName());
269279
if (quarkusDependencyFile.exists()) {
@@ -288,6 +298,7 @@ private void configureOutputs(MojoMetadataProvider.Context context) {
288298
outputs.file("quarkusExe", quarkusExeFileName);
289299
outputs.file("quarkusJar", quarkusJarFileName);
290300
outputs.file("quarkusUberJar", quarkusUberJarFileName);
301+
outputs.file("quarkusArtifactProperties", QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME);
291302
});
292303
}
293304

0 commit comments

Comments
 (0)