jfrog / jfrog-cli

JFrog CLI is a client that provides a simple interface that automates access to the JFrog products.
https://www.jfrog.com/confluence/display/CLI/JFrog+CLI
Apache License 2.0
528 stars 226 forks source link

Incompatible with Gradle configuration cache #2594

Open trevjonez opened 2 months ago

trevjonez commented 2 months ago

Describe the bug

The logic injected via init script is not compatible with gradle configuration caching.

Current behavior

Build invocation fails with the following error.

invocation of Task.project at execution time is unsupported.
  task:generateDepTrees of type com.jfrog.tasks.GenerateDepTrees

Exception at com.jfrog.tasks.GenerateDepTrees.getInputFile(GenerateDepTrees.java:65)
org.gradle.api.InvalidUserCodeException: Invocation of 'Task.project' by task ':generateDepTrees' at execution time is unsupported.
    at org.gradle.api.DefaultTask.getProject(DefaultTask.java:59)
    at com.jfrog.tasks.GenerateDepTrees.getInputFile(GenerateDepTrees.java:65)
    at com.jfrog.tasks.GenerateDepTrees_Decorated.getInputFile(Unknown Source)
    at org.gradle.internal.properties.bean.DefaultPropertyWalker$CachedPropertyValue.lambda$new$0(DefaultPropertyWalker.java:107)
    at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
    at java.base/java.lang.Thread.run(Thread.java:840)
⌄Exception at com.jfrog.tasks.GenerateDepTrees.getRelatedProjects(GenerateDepTrees.java:128)
org.gradle.api.InvalidUserCodeException: Invocation of 'Task.project' by task ':generateDepTrees' at execution time is unsupported.
    at org.gradle.api.DefaultTask.getProject(DefaultTask.java:59)
    at com.jfrog.tasks.GenerateDepTrees.getRelatedProjects(GenerateDepTrees.java:128)
    at com.jfrog.tasks.GenerateDepTrees.getOutputFiles(GenerateDepTrees.java:80)
    at com.jfrog.tasks.GenerateDepTrees_Decorated.getOutputFiles(Unknown Source)
    at org.gradle.internal.properties.bean.DefaultPropertyWalker$CachedPropertyValue.lambda$new$0(DefaultPropertyWalker.java:107)
    at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
    at java.base/java.lang.Thread.run(Thread.java:840)
⌄Exception at com.jfrog.tasks.GenerateDepTrees.getRelatedProjects(GenerateDepTrees.java:131)
org.gradle.api.InvalidUserCodeException: Invocation of 'Task.project' by task ':generateDepTrees' at execution time is unsupported.
    at org.gradle.api.DefaultTask.getProject(DefaultTask.java:59)
    at com.jfrog.tasks.GenerateDepTrees.getRelatedProjects(GenerateDepTrees.java:131)
    at com.jfrog.tasks.GenerateDepTrees.getOutputFiles(GenerateDepTrees.java:80)
    at com.jfrog.tasks.GenerateDepTrees_Decorated.getOutputFiles(Unknown Source)
    at org.gradle.internal.properties.bean.DefaultPropertyWalker$CachedPropertyValue.lambda$new$0(DefaultPropertyWalker.java:107)
    at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
    at java.base/java.lang.Thread.run(Thread.java:840)

Reproduction steps

Attempt to run with the configuration cache enabled.

Expected behavior

injected build logic shouldn't fail built in validation for configuration cache. https://docs.gradle.org/8.8/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution

likely to set you on a path toward supporting project isolation eventually as well. https://docs.gradle.org/current/userguide/isolated_projects.html

JFrog CLI version

2.53.2

Operating system type and version

linux

JFrog Artifactory version

No response

JFrog Xray version

No response

trevjonez commented 2 months ago

Code at issues is likely this project: https://github.com/jfrog/gradle-dep-tree