Skip to content

Commit 15fc24e

Browse files
committed
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.
1 parent 7229aef commit 15fc24e

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

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

Lines changed: 10 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,7 @@ void configureBuildCache(BuildCacheApi buildCache) {
6367
});
6468
context.withPlugin("maven-failsafe-plugin", () -> {
6569
configureQuarkusExtraTestInputs(context, extensionConfiguration);
70+
context.inputs(inputs -> addQuarkusArtifactPropertiesInput(inputs, extensionConfiguration));
6671
});
6772
});
6873
}
@@ -264,6 +269,10 @@ private void addQuarkusDependencyChecksumsInput(MojoMetadataProvider.Context.Inp
264269
inputs.fileSet("quarkusDependencyChecksums", new File(extensionConfiguration.getCurrentDependencyChecksumsFileName()), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
265270
}
266271

272+
private void addQuarkusArtifactPropertiesInput(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
273+
inputs.fileSet("quarkusArtifactProperties", new File(QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME), fileSet -> fileSet.normalizationStrategy(MojoMetadataProvider.Context.FileSet.NormalizationStrategy.RELATIVE_PATH));
274+
}
275+
267276
private void addQuarkusDependenciesInputs(MojoMetadataProvider.Context.Inputs inputs, QuarkusExtensionConfiguration extensionConfiguration) {
268277
File quarkusDependencyFile = new File(extensionConfiguration.getCurrentDependencyFileName());
269278
if (quarkusDependencyFile.exists()) {
@@ -288,6 +297,7 @@ private void configureOutputs(MojoMetadataProvider.Context context) {
288297
outputs.file("quarkusExe", quarkusExeFileName);
289298
outputs.file("quarkusJar", quarkusJarFileName);
290299
outputs.file("quarkusUberJar", quarkusUberJarFileName);
300+
outputs.file("quarkusArtifactProperties", QUARKUS_ARTIFACT_PROPERTIES_FILE_NAME);
291301
});
292302
}
293303

0 commit comments

Comments
 (0)