diff --git a/docker/build_tools.py b/docker/build_tools.py
index 21592b48..6f3f2765 100644
--- a/docker/build_tools.py
+++ b/docker/build_tools.py
@@ -52,12 +52,11 @@ except ImportError as ex:
envlist="\n".join( [f"{k}={v}" for k,v in sorted(os.environ.items())])
print(f'{envlist}')
raise
-
+tool_version= "1.0.6"
FORMAT = '%(asctime)s %(message)s'
logging.basicConfig(format=FORMAT)
logger:logging.Logger = logging.getLogger(__name__)
github_env= type('', (), {})()
-tool_version= "1.0.5"
manifest={
"name": "",
"version": "",
@@ -362,7 +361,17 @@ class Releases():
def get_last_commit(cls)->Commit:
if cls.repo is None:
cls.get_repository(os.getcwd())
- return cls.repo[cls.repo.head.target]
+ target=cls.repo.head.target
+
+ last_commit=''
+ try:
+ last_commit=cls.repo[last_commit]
+ logger.info(f'Last commit for target {target} is {last_commit}')
+ except Exception as e:
+ logger.error(f'Unable to retrieve last commit for target {target}: {e}')
+ last_commit=None
+
+ return last_commit
@classmethod
def get_repository(cls,path:str=os.getcwd())->Repository:
if cls.repo is None:
@@ -518,7 +527,10 @@ def handle_environment(args):
github_env.artifact_file_name=f"{github_env.artifact_prefix}.zip"
github_env.artifact_bin_file_name=f"{github_env.artifact_prefix}.bin"
github_env.PROJECT_VER=f'{args.node}-{ args.build }'
- github_env.description='### Revision Log
<<~EOD\n'+'
\n'.join(format_commit(c) for i,c in enumerate(Releases.get_repository().walk(last.id,pygit2.GIT_SORT_TIME)) if i<10)+'\n~EOD'
+ commit_list = []
+ for c in [c for i,c in enumerate(Releases.get_repository().walk(last.id,pygit2.GIT_SORT_TIME)) if i<10]:
+ commit_list.append(format_commit(c))
+ github_env.description='### Revision Log
<<~EOD\n'+'
\n'.join(commit_list)+'\n~EOD'
write_github_env(args)
def handle_artifacts(args):
@@ -554,7 +566,7 @@ def delete_folder(path):
os.chmod(path ,stat.S_IWRITE)
logger.warning(f'Deleting Folder {path}')
os.rmdir(path)
-def get_file_stats(path)->tuple[int,str,str]:
+def get_file_stats(path):
fstat:os.stat_result = pathlib.Path(path).stat()
# Convert file size to MB, KB or Bytes
mtime = time.strftime("%X %x", time.gmtime(fstat.st_mtime))
@@ -578,13 +590,8 @@ def get_file_list(root_path, max_levels:int=2 )->list:
def get_recursive_list(path)->list:
outlist:list=[]
for root, dirs, files in os.walk(path,topdown=True):
- for dir in dirs:
- outlist.extend(get_recursive_list(os.path.join(root, dir)))
for fname in files:
- outlist.append(fname)
- # if os.path.exists(path):
- # outlist.append(path)
- outlist.sort()
+ outlist.append((fname,os.path.join(root,fname)))
return outlist
def handle_manifest(args):
@@ -672,9 +679,10 @@ def update_files(target_artifacts:str,manif_name:str,source:str):
new_list:dict = get_new_file_names(manif_name, os.path.abspath(source))
if os.path.exists(target_artifacts):
logger.info(f'Removing obsolete files from {target_artifacts}')
- for f in get_recursive_list(target_artifacts):
+ for entry in get_recursive_list(target_artifacts):
+ f=entry[0]
+ full_target=entry[1]
if f not in new_list.keys():
- full_target = os.path.join(target_artifacts,f)
logger.warning(f'Removing obsolete file {f}')
os.remove(full_target)
else: