gradle-revapi icon indicating copy to clipboard operation
gradle-revapi copied to clipboard

build fails inside gitlab ci

Open pdeva opened this issue 5 years ago • 3 comments

What happened?

Seeing this error when running gradlew check inside gitlab ci. seems the way revapi uses git requires has some issues. works fine locally or in circleci.


  | Caused by: java.lang.RuntimeException: Failed running command: |  
-- | -- | --
  | Command:[] |  
  | Exit code: 128 |  
  | Stdout: |  
  | Stderr:fatal: No names found, cannot describe anything. |  
  |   |  




  |   | at com.palantir.gradle.revapi.GitVersionUtils$GitResult.stdoutOrThrowIfNonZero(GitVersionUtils.java:115) |  
-- | -- | -- | --
  |   | at com.palantir.gradle.revapi.GitVersionUtils.previousGitTagFromRef(GitVersionUtils.java:57) |  
  |   | at com.palantir.gradle.revapi.GitVersionUtils.access$000(GitVersionUtils.java:32) |  
  |   | at com.palantir.gradle.revapi.GitVersionUtils$PreviousGitTags.tryAdvance(GitVersionUtils.java:135) |  
  |   | at com.palantir.gradle.revapi.RevapiExtension.lambda$new$1(RevapiExtension.java:47) |  
  |   | at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:66) |  
  |   | at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103) |  
  |   | at org.gradle.api.internal.provider.Collectors$ElementsFromCollectionProvider.collectEntries(Collectors.java:216) |  
  |   | at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateValue(AbstractCollectionProperty.java:337) |  
  |   | at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:184) |  
  |   | at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateValueFrom(AbstractCollectionProperty.java:37) |  
  |   | at org.gradle.api.internal.provider.AbstractProperty.doCalculateValue(AbstractProperty.java:133) |  
  |   | at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:127) |  
  |   | at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:84) |  
  |   | at com.palantir.gradle.revapi.ResolveOldApi.resolveOldApiAcrossAllOldVersions(ResolveOldApi.java:55) |  
  |   | at com.palantir.gradle.revapi.ResolveOldApi.lambda$oldApiProvider$0(ResolveOldApi.java:48) |  
  |   | at com.palantir.gradle.revapi.GradleUtils$MemoizingSupplier.get(GradleUtils.java:49) |  
  |   | at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:66) |  
  |   | at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103) |  
  |   | at org.gradle.api.internal.provider.TransformBackedProvider.calculateOwnValue(TransformBackedProvider.java:64) |  
  |   | at org.gradle.api.internal.provider.AbstractMinimalProvider.calculatePresence(AbstractMinimalProvider.java:79) |  
  |   | at org.gradle.api.internal.provider.MappingProvider.calculatePresence(MappingProvider.java:50) |  
  |   | at org.gradle.api.internal.provider.AbstractProperty.calculatePresence(AbstractProperty.java:58) |  
  |   | at org.gradle.api.internal.provider.AbstractMinimalProvider.isPresent(AbstractMinimalProvider.java:74) |  
  |   | at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$BeanPropertyValue.call(AbstractNestedRuntimeBeanNode.java:137) |  
  |   | at org.gradle.util.GUtil.uncheckedCall(GUtil.java:442) |  
  |   | at org.gradle.util.DeferredUtil.unpackNestableDeferred(DeferredUtil.java:64) |  
  |   | at org.gradle.api.internal.file.collections.UnpackingVisitor.add(UnpackingVisitor.java:84) |  
  |   | at org.gradle.api.internal.file.DefaultFileCollectionFactory$ResolvingFileCollection.visitChildren(DefaultFileCollectionFactory.java:310) |  
  |   | at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:108) |  
  |   | at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:112) |  
  |   | at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmptyEdges.getNodeValues(CachingDirectedGraphWalker.java:213) |  
  |   | at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121) |  
  |   | at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73) |  
  |   | at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:67) |  
  |   | at org.gradle.execution.plan.TaskDependencyResolver.resolveDependenciesFor(TaskDependencyResolver.java:46) |  
  |   | at org.gradle.execution.plan.LocalTaskNode.getDependencies(LocalTaskNode.java:160) |  
  |   | at org.gradle.execution.plan.LocalTaskNode.resolveDependencies(LocalTaskNode.java:128) |  
  |   | at org.gradle.execution.plan.DefaultExecutionPlan.doAddNodes(DefaultExecutionPlan.java:163) |  
  |   | at org.gradle.execution.plan.DefaultExecutionPlan.addEntryTasks(DefaultExecutionPlan.java:133) |  
  |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.addEntryTasks(DefaultTaskExecutionGraph.java:147) |  
  |   | at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:49) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:66) |  
  |   | at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:45) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:66) |  
  |   | at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:48) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26) |  
  |   | at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.run(DefaultBuildConfigurationActionExecuter.java:44)


What did you want to happen?

build without errors.

gradle 6.6.1
"com.palantir.revapi" version "1.4.3"

pdeva avatar Aug 26 '20 01:08 pdeva

I think can happen if your git clone was a shallow checkout.

In order to be useful, gradle-revapi needs some way to understand what the previous released version of your code was. At palantir we just cut git tags on develop (and our CircleCI workflows do a full clone), so we can easily find the most recently released thing by running git describe --tags --abbrev=0 HEAD^ see link.

If you use the same style of cutting git tags on develop and want to make this work, you might be able to tweak your GitLab config so that it does a deeper checkout. Alternatively, if there's some other way you want to determine the previously released version, it's probably possible to wire that up to revapi?

iamdanfox avatar Aug 26 '20 10:08 iamdanfox

i can confirm that git checkout is set to max depth

pdeva avatar Aug 28 '20 06:08 pdeva

Ok so if running git describe --tags --abbrev=0 HEAD^ doesn't work, how would you like gradle-revapi to figure out what the previously released version of your codebase was? (Also links would be great if this is an open-source codebase!)

iamdanfox avatar Aug 28 '20 09:08 iamdanfox