mirror of
https://github.com/linuxserver/docker-ci.git
synced 2026-02-15 15:18:49 +08:00
refactor and use convert_env(), remove error_message var
This commit is contained in:
parent
1a3339800f
commit
ab8a8f949a
30
ci/ci.py
30
ci/ci.py
@ -29,10 +29,9 @@ class CI():
|
||||
self.report_tests = []
|
||||
self.report_containers = []
|
||||
self.report_status = 'PASS'
|
||||
self.dockerenv = {}
|
||||
self.error_message = ''
|
||||
|
||||
# Set the optional parameters
|
||||
self.dockerenv = self.convert_env(os.environ.get("DOCKER_ENV", ""))
|
||||
self.webauth = os.environ.get('WEB_AUTH', 'user:password')
|
||||
self.webpath = os.environ.get('WEB_PATH', '')
|
||||
self.region = os.environ.get('S3_REGION', 'us-east-1')
|
||||
@ -47,19 +46,20 @@ class CI():
|
||||
self.outdir = f'{os.path.dirname(os.path.realpath(__file__))}/output/{self.image}/{self.meta_tag}'
|
||||
os.makedirs(self.outdir, exist_ok=True)
|
||||
|
||||
def convert_env(self, envs):
|
||||
@staticmethod
|
||||
def convert_env(envs:str = None):
|
||||
'''Convert env input to dictionary'''
|
||||
try:
|
||||
env_dict = {}
|
||||
if envs:
|
||||
if '|' in envs:
|
||||
for varpair in envs.split('|'):
|
||||
var = varpair.split('=')
|
||||
self.dockerenv[var[0]] = var[1]
|
||||
env_dict[var[0]] = var[1]
|
||||
else:
|
||||
var = envs.split('=')
|
||||
self.dockerenv[var[0]] = var[1]
|
||||
except Exception as error:
|
||||
self.error_message = error
|
||||
raise Exception(self.error_message) from error
|
||||
env_dict[var[0]] = var[1]
|
||||
return env_dict
|
||||
|
||||
|
||||
def check_env(self):
|
||||
'''Make sure all needed env variables are set'''
|
||||
@ -77,8 +77,7 @@ class CI():
|
||||
else:
|
||||
self.tags.append(self.tags_env)
|
||||
except KeyError as error:
|
||||
self.error_message = f'Key {error} is not set in ENV!'
|
||||
raise Exception(self.error_message) from error
|
||||
raise Exception(f'Key {error} is not set in ENV!') from error
|
||||
|
||||
def container_test(self, tag):
|
||||
'''Main container test logic'''
|
||||
@ -222,9 +221,8 @@ class CI():
|
||||
f'{latest_dir}/index.html',
|
||||
ExtraArgs={'ContentType': 'text/html', 'ACL': 'public-read'})
|
||||
except Exception as error:
|
||||
self.error_message = f'Upload Error: {error}'
|
||||
self.logger.exception(f'Upload Error: {error}')
|
||||
raise Exception(self.error_message) from error
|
||||
raise Exception(f'Upload Error: {error}') from error
|
||||
# Loop for all others
|
||||
for filename in os.listdir(self.outdir):
|
||||
time.sleep(0.5)
|
||||
@ -251,9 +249,8 @@ class CI():
|
||||
f'{latest_dir}/{filename}',
|
||||
ExtraArgs={'ContentType': ctype, 'ACL': 'public-read', 'CacheControl': 'no-cache'})
|
||||
except Exception as error:
|
||||
self.error_message = f'Upload Error: {error}'
|
||||
self.logger.exception(f'Upload Error: {error}')
|
||||
raise Exception(self.error_message) from error
|
||||
raise Exception(f'Upload Error: {error}') from error
|
||||
|
||||
def log_upload(self):
|
||||
'''Upload debug log to S3'''
|
||||
@ -278,9 +275,8 @@ class CI():
|
||||
f'{latest_dir}/debug.log',
|
||||
ExtraArgs={'ContentType': 'text/plain', 'ACL': 'public-read'})
|
||||
except Exception as error:
|
||||
self.error_message = f'Upload Error: {error}'
|
||||
self.logger.exception(f'Upload Error: {error}')
|
||||
raise Exception(self.error_message) from error
|
||||
raise Exception(f'Upload Error: {error}') from error
|
||||
|
||||
def take_screenshot(self, container, tag):
|
||||
'''Take a screenshot and save it to self.outdir'''
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user