|
|
|
@ -161,6 +161,7 @@ class Job(object): |
|
|
|
|
env = os.environ.copy() |
|
|
|
|
for k, v in spec.environ.iteritems(): |
|
|
|
|
env[k] = v |
|
|
|
|
self._start = time.time() |
|
|
|
|
self._process = subprocess.Popen(args=spec.cmdline, |
|
|
|
|
stderr=subprocess.STDOUT, |
|
|
|
|
stdout=self._tempfile, |
|
|
|
@ -168,12 +169,12 @@ class Job(object): |
|
|
|
|
self._state = _RUNNING |
|
|
|
|
self._newline_on_success = newline_on_success |
|
|
|
|
self._travis = travis |
|
|
|
|
if not travis: |
|
|
|
|
message('START', spec.shortname) |
|
|
|
|
message('START', spec.shortname, do_newline=self._travis) |
|
|
|
|
|
|
|
|
|
def state(self, update_cache): |
|
|
|
|
"""Poll current state of the job. Prints messages at completion.""" |
|
|
|
|
if self._state == _RUNNING and self._process.poll() is not None: |
|
|
|
|
elapsed = time.time() - self._start |
|
|
|
|
if self._process.returncode != 0: |
|
|
|
|
self._state = _FAILURE |
|
|
|
|
self._tempfile.seek(0) |
|
|
|
@ -182,7 +183,7 @@ class Job(object): |
|
|
|
|
self._spec.shortname, self._process.returncode), stdout) |
|
|
|
|
else: |
|
|
|
|
self._state = _SUCCESS |
|
|
|
|
message('PASSED', self._spec.shortname, |
|
|
|
|
message('PASSED', '%s [time=%.1fsec]' % (self._spec.shortname, elapsed), |
|
|
|
|
do_newline=self._newline_on_success or self._travis) |
|
|
|
|
if self._bin_hash: |
|
|
|
|
update_cache.finished(self._spec.identity(), self._bin_hash) |
|
|
|
@ -288,7 +289,11 @@ def run(cmdlines, |
|
|
|
|
maxjobs if maxjobs is not None else _DEFAULT_MAX_JOBS, |
|
|
|
|
newline_on_success, travis, |
|
|
|
|
cache if cache is not None else NoCache()) |
|
|
|
|
for cmdline in shuffle_iteratable(cmdlines): |
|
|
|
|
if not travis: |
|
|
|
|
cmdlines = shuffle_iteratable(cmdlines) |
|
|
|
|
else: |
|
|
|
|
cmdlines = sorted(cmdlines) |
|
|
|
|
for cmdline in cmdlines: |
|
|
|
|
if not js.start(cmdline): |
|
|
|
|
break |
|
|
|
|
return js.finish() |
|
|
|
|