From 7a5886279473c06d361d2903ee60f8b0eb0d13f9 Mon Sep 17 00:00:00 2001 From: John Haubrich Date: Thu, 10 Oct 2019 08:46:47 -0400 Subject: [PATCH] gradle: Ensure git command is run projectDir rather than CWD. The assert on line 659 was causing my build to fail. Two issues caused gitCommit to be empty. 1. The cmd 'git describe --always --tags --dirty=+' was not given enough time to complete and had not exited which meant no text in proc.text 2. The two git commands on lines 653 and 658 were run from the CWD of my Eclipse IDE, not the $projectDir which caused git to return an error 128. To solve the two issues I added a waitForOrKill method call to proc (like the srCmd had) and I set the execute to run in $projectDir which I think was the intent/assumption in the original code. Also add waitFor on git describe command. --- build.gradle | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d705a0cd2..0ae894a8c 100644 --- a/build.gradle +++ b/build.gradle @@ -650,13 +650,16 @@ def getGitCommit() { def dotGit = new File("$projectDir/.git") if (!dotGit.isDirectory()) return 'non-git build' + def projectDir = dotGit.getParentFile() def cmd = 'git describe --always --tags --dirty=+' - def proc = cmd.execute() + def proc = cmd.execute(null, projectDir) + proc.waitForOrKill(10 * 1000) + def gitCommit = proc.text.trim() assert !gitCommit.isEmpty() def srCmd = 'git symbolic-ref --short HEAD' - def srProc = srCmd.execute() + def srProc = srCmd.execute(null, projectDir) srProc.waitForOrKill(10 * 1000) if (srProc.exitValue() == 0) { // Only add the information if the git command was