Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't fail the build if we're in a git worktree folder #6169

Merged
merged 2 commits into from
Sep 19, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,12 @@ def resolveLargeResourceStubFiles(largeResourcesFolder, buildPrerequisitesMessag
}
}

// Check that we're in a folder which git recognizes as a git repository.
// This works for either a standard git clone or one created with `git worktree add`
def looksLikeWereInAGitRepository(){
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth putting a comment here saying that its looking for either a git-dir or a worktree (or whatever the right names are) - I always get them mixed up.

file(".git").isDirectory() || (file(".git").exists() && file(".git").text.startsWith("gitdir"))
}

// Ensure that we have the right JDK version, a clone of the git repository, and resolve any required git-lfs
// resource files that are needed to run the build but are still lfs stub files.
def ensureBuildPrerequisites(requiredJavaVersion, largeResourcesFolder, buildPrerequisitesMessage) {
Expand All @@ -134,9 +140,10 @@ def ensureBuildPrerequisites(requiredJavaVersion, largeResourcesFolder, buildPre
"The ClassLoader obtained from the Java ToolProvider is null. "
+ "A Java $requiredJavaVersion JDK must be installed. $buildPrerequisitesMessage")
}
if (!file(".git").isDirectory()) {
throw new GradleException("The GATK Github repository must be cloned using \"git clone\" to run the build. "
+ "$buildPrerequisitesMessage")
if (!looksLikeWereInAGitRepository()) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest changing the message below to something like:

"This doesn't appear to be a git folder. The GATK Github repository must be cloned using \"git clone\" to run the build. + "$buildPrerequisitesMessage")

throw new GradleException("This doesn't appear to be a git folder. " +
"The GATK Github repository must be cloned using \"git clone\" to run the build. " +
"\n$buildPrerequisitesMessage")
}
// Large runtime resource files must be present at build time to be compiled into the jar, so
// try to resolve them to real files if any of them are stubs.
Expand Down