Add GIT_DIR to the ENV to make sure git commands find the repo.

This commit is contained in:
Jonathan Bernard 2017-02-18 09:14:24 -06:00
parent a2350ef7fd
commit ca029ab67d

View File

@ -155,13 +155,17 @@ proc loadProjectConfig(cfgFile: string): ProjectCfg =
proc setupProjectForWork(projectDef: ProjectDef, buildRef, artifactsRepo: string): Workspace = proc setupProjectForWork(projectDef: ProjectDef, buildRef, artifactsRepo: string): Workspace =
info "Setting up to do work for '" & projectDef.name & "' at ref " & buildRef & "." info "Setting up to do work for '" & projectDef.name & "' at ref " & buildRef & "."
var env = ENV
env["GIT_DIR"] = ".git"
# Create a temp directory that we'll work in # Create a temp directory that we'll work in
let projDir = mkdtemp() let projDir = mkdtemp()
debug "Workspace for '" & projectDef.name & ": " & projDir
assert projDir.isAbsolute
# Clone the project into the $temp/repo directory # Clone the project into the $temp/repo directory
let cloneResult = exec("git", projDir, ["clone", projectDef.repo, "repo"], let cloneResult = exec("git", projDir, ["clone", projectDef.repo, "repo"],
ENV, {poUsePath}, logProcOutput) env, {poUsePath}, logProcOutput)
if cloneResult.exitCode != 0: if cloneResult.exitCode != 0:
removeDir(projDir) removeDir(projDir)
@ -169,7 +173,7 @@ proc setupProjectForWork(projectDef: ProjectDef, buildRef, artifactsRepo: string
# Checkout the requested ref # Checkout the requested ref
let checkoutResult = exec("git", projDir & "/repo", ["checkout", buildRef], let checkoutResult = exec("git", projDir & "/repo", ["checkout", buildRef],
ENV, {poUsePath}, logProcOutput) env, {poUsePath}, logProcOutput)
if checkoutResult.exitCode != 0: if checkoutResult.exitCode != 0:
removeDir(projDir) removeDir(projDir)
@ -183,7 +187,7 @@ proc setupProjectForWork(projectDef: ProjectDef, buildRef, artifactsRepo: string
"repo (expected at '" & projectDef.cfgFilePath & "')." "repo (expected at '" & projectDef.cfgFilePath & "')."
let projectCfg = loadProjectConfig(projCfgFile) let projectCfg = loadProjectConfig(projCfgFile)
result = Workspace(env: ENV, workingDir: projDir, project: projectCfg, result = Workspace(env: env, workingDir: projDir, project: projectCfg,
artifactsRepo: artifactsRepo) artifactsRepo: artifactsRepo)
# Merge in the project-defined env vars # Merge in the project-defined env vars
@ -207,8 +211,6 @@ proc setupProjectForWork(projectDef: ProjectDef, buildRef, artifactsRepo: string
debug "Building version " & versionResult.output.strip debug "Building version " & versionResult.output.strip
result.env["VERSION"] = versionResult.output.strip result.env["VERSION"] = versionResult.output.strip
debug "Workspace for '" & projectCfg.name & ": " & projDir
## TODO ## TODO
proc runStep(step: Step, wksp: Workspace): void = proc runStep(step: Step, wksp: Workspace): void =
@ -277,11 +279,11 @@ when isMainModule:
logging.addHandler(newConsoleLogger()) logging.addHandler(newConsoleLogger())
let cfg = loadStrawBossConfig("strawboss.config.json") let cfg = loadStrawBossConfig("strawboss.config.json")
let artifactsRepo = expandFilename(cfg.artifactsRepo) if not existsDir(cfg.artifactsRepo):
info "Artifacts repo (" & cfg.artifactsRepo & ") does not exist. Creating..."
createDir(cfg.artifactsRepo)
if not existsDir(artifactsRepo): let artifactsRepo = expandFilename(cfg.artifactsRepo)
info "Artifacts repo (" & artifactsRepo & ") does not exist. Creating..."
createDir(artifactsRepo)
let doc = """ let doc = """
Usage: Usage: