diff --git a/benchmark.py b/benchmark.py index c68a9f5de..962cd9d33 100644 --- a/benchmark.py +++ b/benchmark.py @@ -44,36 +44,38 @@ def fastDownwardVersion(config): return version.strip() -def git(command, cwd): +def git(command, cwd, enforce = False): stdout, stderr, exitCode = executeCommand(["git"] + command, cwd = cwd) if exitCode != 0: print(stderr, file = sys.stderr) - raise RuntimeError("git error") + + if enforce: + raise RuntimeError("git error") def initRepo(config): dataDir = config["storage"]["local"] # clone repo if not existing if not os.path.isdir(config["storage"]["local"]): - git(["clone", config["storage"]["remote"], dataDir], None) + git(["clone", config["storage"]["remote"], dataDir], None, enforce = True) # default settings - git(["config", "--local", "user.name", config["storage"]["userName"]], dataDir) - git(["config", "--local", "user.email", config["storage"]["userEMail"]], dataDir) + git(["config", "--local", "user.name", config["storage"]["userName"]], dataDir, enforce = True) + git(["config", "--local", "user.email", config["storage"]["userEMail"]], dataDir, enforce = True) if "userSigningKey" in config["storage"]: - git(["config", "--local", "user.signingkey", config["storage"]["userSigningKey"]], dataDir) - git(["config", "--local", "commit.gpgsign", "true"], dataDir) + git(["config", "--local", "user.signingkey", config["storage"]["userSigningKey"]], dataDir, enforce = True) + git(["config", "--local", "commit.gpgsign", "true"], dataDir, enforce = True) else: - git(["config", "--local", "commit.gpgsign", "false"], dataDir) + git(["config", "--local", "commit.gpgsign", "false"], dataDir, enforce = True) # fetch origin git(["fetch"], cwd = dataDir) # pull all branches for key, branch in config["storage"]["branches"].items(): - git(["checkout", branch], cwd = dataDir) + git(["checkout", branch], cwd = dataDir, enforce = True) git(["pull"], cwd = dataDir) def readBenchmarkConfig(config): @@ -82,7 +84,7 @@ def readBenchmarkConfig(config): dataDir = config["storage"]["local"] # checkout config branch - git(["checkout", config["storage"]["branches"]["config"]], cwd = dataDir) + git(["checkout", config["storage"]["branches"]["config"]], cwd = dataDir, enforce = True) # read instance list instancesFile = os.path.join(config["storage"]["local"], "instances.yml") @@ -124,7 +126,7 @@ def nextJob(config): dataDir = config["storage"]["local"] # checkout results branch - git(["checkout", config["storage"]["branches"]["results"]], cwd = dataDir) + git(["checkout", config["storage"]["branches"]["results"]], cwd = dataDir, enforce = True) configurations = benchmarkConfig["configurations"]["configurations"] instances = benchmarkConfig["instances"] @@ -145,7 +147,7 @@ def writeStatus(message, config): dataDir = config["storage"]["local"] # checkout status branch - git(["checkout", config["storage"]["branches"]["status"]], cwd = dataDir) + git(["checkout", config["storage"]["branches"]["status"]], cwd = dataDir, enforce = True) statusFilename = os.path.join(dataDir, "status.log") @@ -159,8 +161,8 @@ def writeStatus(message, config): with open(statusFilename, "w") as statusFile: print(time.strftime("%Y-%m-%d %H:%M:%S %z") + "\t" + message + "\n" + "".join(content), file = statusFile, end = "") - git(["add", "status.log"], dataDir) - git(["commit", "-m Update status: " + message], dataDir) + git(["add", "status.log"], dataDir, enforce = True) + git(["commit", "-m Update status: " + message], dataDir, enforce = True) git(["push"], dataDir) def runJob(configuration, instance, config): @@ -173,7 +175,7 @@ def runJob(configuration, instance, config): inputFiles = inputFilenames(instance, config) # checkout results branch - git(["checkout", config["storage"]["branches"]["results"]], cwd = dataDir) + git(["checkout", config["storage"]["branches"]["results"]], cwd = dataDir, enforce = True) command = \ [ @@ -227,8 +229,8 @@ def runJob(configuration, instance, config): print(yaml.dump(environment, default_flow_style = False), file = environmentFile) - git(["add", outputFiles["outputFile"], outputFiles["errorFile"], outputFiles["environmentFile"]], dataDir) - git(["commit", "-m Add benchmark result " + jobName], dataDir) + git(["add", outputFiles["outputFile"], outputFiles["errorFile"], outputFiles["environmentFile"]], dataDir, enforce = True) + git(["commit", "-m Add benchmark result " + jobName], dataDir, enforce = True) git(["push"], dataDir) if exitCode != 0: