Continued work on buildstatus_saver. Removed headers for CSV files, closing #4.

This commit is contained in:
antux18 2024-07-15 11:00:08 +02:00
parent 2ad37f46f2
commit 0e6b181310

21
ecg.py
View File

@ -24,6 +24,7 @@ import datetime
import sys import sys
# Paths: # Paths:
config_path = ""
pkglist_path = "pkglist.csv" # Package list being generated pkglist_path = "pkglist.csv" # Package list being generated
buildstatus_path = "build_status.csv" # Summary of the build process of the image buildstatus_path = "build_status.csv" # Summary of the build process of the image
cachedir_path = "cache" # Artifact cache directory cachedir_path = "cache" # Artifact cache directory
@ -125,15 +126,15 @@ def buildstatus_saver(output):
""" """
file_exists = os.path.exists(buildstatus_path) file_exists = os.path.exists(buildstatus_path)
buildstatus_file = open(buildstatus_path, "w+") buildstatus_file = open(buildstatus_path, "w+")
# Writing header in case file didn't exist: # # Writing header in case file didn't exist:
if not file_exists: # if not file_exists:
buildstatus_file.write("yaml_path,timestamp,error") # buildstatus_file.write("yaml_path,timestamp,error")
for error_cat, errors_list in build_errors.items(): for error_cat, errors_list in build_errors.items():
for error in errors_list: for error in errors_list:
if error in output: if error in output:
now = datetime.datetime.now() now = datetime.datetime.now()
timestamp = str(datetime.datetime.timestamp(now)) timestamp = str(datetime.datetime.timestamp(now))
buildstatus_file.write() buildstatus_file.write(f"{config_path},{timestamp},{error_cat}")
buildstatus_file.close() buildstatus_file.close()
def build_image(config, src_dir): def build_image(config, src_dir):
@ -187,7 +188,7 @@ def check_env(config, src_dir):
""" """
logging.info("Checking software environment") logging.info("Checking software environment")
pkglist_file = open(pkglist_path, "w") pkglist_file = open(pkglist_path, "w")
pkglist_file.write("package,version,package_manager\n") # pkglist_file.write("package,version,package_manager\n")
path = os.path.join(src_dir, config["dockerfile_location"]) path = os.path.join(src_dir, config["dockerfile_location"])
for pkgmgr in config["package_managers"]: for pkgmgr in config["package_managers"]:
logging.info(f"Checking '{pkgmgr}'") logging.info(f"Checking '{pkgmgr}'")
@ -231,7 +232,7 @@ def remove_image(config):
subprocess.run(["docker", "rmi", name], capture_output = True) subprocess.run(["docker", "rmi", name], capture_output = True)
def main(): def main():
global pkglist_path, buildstatus_path, cachedir_path global config_path, pkglist_path, buildstatus_path, cachedir_path
# Command line arguments parsing: # Command line arguments parsing:
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
@ -277,19 +278,19 @@ def main():
# Setting up the log: will be displayed both on stdout and to the specified # Setting up the log: will be displayed both on stdout and to the specified
# file: # file:
logging.info(f"Output will be stored in {log_path}")
logging.basicConfig(filename = log_path, filemode = "w", format = '%(levelname)s: %(message)s', level = logging.INFO) logging.basicConfig(filename = log_path, filemode = "w", format = '%(levelname)s: %(message)s', level = logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
# Parsing the input YAML file including the configuration of # Parsing the input YAML file including the configuration of
# the artifact's image: # the artifact's image:
config_file = open(args.config, "r") config_path = args.config
config_file = open(config_path, "r")
config = yaml.safe_load(config_file) config = yaml.safe_load(config_file)
config_file.close() config_file.close()
verbose = args.verbose verbose = args.verbose
# if verbose: # if verbose:
# logging.info(f"Output will be stored in {output}") # logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
src_dir = download_sources(config) src_dir = download_sources(config)
successful_build = build_image(config, src_dir) successful_build = build_image(config, src_dir)