瀏覽代碼

Squash some commits [skip actions]

Sebastien L 2 年之前
父節點
當前提交
4fff2f0dc1
共有 1 個文件被更改,包括 21 次插入13 次删除
  1. 21 13
      docker/build_tools.py

+ 21 - 13
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<br><<~EOD\n'+'<br>\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<br><<~EOD\n'+'<br>\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: