Improve error output

This commit is contained in:
Joe Rickerby
2020-11-01 21:36:44 +00:00
parent 4a736cdcb1
commit fa4a0cbd33
2 changed files with 24 additions and 10 deletions
+1 -2
View File
@@ -259,8 +259,7 @@ def build(options: BuildOptions) -> None:
docker.copy_out(container_output_dir, options.output_dir)
log.step_end()
except subprocess.CalledProcessError as error:
print(f'::error::{error}')
print(f'Command {error.cmd} failed with code {error.returncode}. {error.stdout}')
log.error(f'Command {error.cmd} failed with code {error.returncode}. {error.stdout}')
troubleshoot(options.package_dir, error)
exit(1)
+23 -8
View File
@@ -1,7 +1,7 @@
import os
import time
import sys
from typing import Optional
from typing import Optional, Union
DEFAULT_FOLD_PATTERN = ('{name}', '')
FOLD_PATTERNS = {
@@ -78,25 +78,39 @@ class Logger:
def step(self, step_description: str):
self.step_end()
self.step_start_time = time.time()
self.start_fold_group(step_description)
self._start_fold_group(step_description)
def step_end(self):
def step_end(self, success=True):
if self.step_start_time is not None:
self.end_fold_group()
self._end_fold_group()
c = self.colors
duration = time.time() - self.step_start_time
print(f'{c.green}{c.end}{duration:.2f}s'.rjust(78))
if success:
print(f'{c.green}{c.end}{duration:.2f}s'.rjust(78))
else:
print(f'{c.red}{c.end}{duration:.2f}s'.rjust(78))
self.step_start_time = None
def start_fold_group(self, name: str):
self.end_fold_group()
def error(self, error: Union[Exception, str]):
self.step_end(success=False)
print()
if self.fold_mode == 'github':
print(f'::error::{error}')
else:
c = self.colors
print(f'{c.bright_red}Error{c.end} {error}')
def _start_fold_group(self, name: str):
self._end_fold_group()
self.active_fold_group_name = name
fold_start_pattern = FOLD_PATTERNS.get(self.fold_mode, DEFAULT_FOLD_PATTERN)[0]
print(fold_start_pattern.format(name=self.active_fold_group_name))
print()
def end_fold_group(self):
def _end_fold_group(self):
if self.active_fold_group_name:
fold_start_pattern = FOLD_PATTERNS.get(self.fold_mode, DEFAULT_FOLD_PATTERN)[1]
print(fold_start_pattern.format(name=self.active_fold_group_name))
@@ -142,6 +156,7 @@ class Colors():
yellow = '\033[33m'
blue = '\033[34m'
cyan = '\033[36m'
bright_red = '\033[91m'
bright_green = '\033[92m'
white = '\033[37m\033[97m'