feat: exit on immutable files not all covered
This commit is contained in:
		
							parent
							
								
									44924d8c5f
								
							
						
					
					
						commit
						97eea108fb
					
				|  | @ -1,4 +1,5 @@ | ||||||
| import hashlib | import hashlib | ||||||
|  | import sys | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
| from typing import List, Tuple | from typing import List, Tuple | ||||||
| 
 | 
 | ||||||
|  | @ -107,11 +108,23 @@ def get_check_lists(repo_conf: repo.Config) -> Tuple[List[str], List[str]]: | ||||||
|         immutable_files.append(file_path) |         immutable_files.append(file_path) | ||||||
|         file_sums.append(calc_sha256sum(file_path)) |         file_sums.append(calc_sha256sum(file_path)) | ||||||
|         file_names.append(file) |         file_names.append(file) | ||||||
|     immutable_dir = ( |     new_immutable_dir = ( | ||||||
|         repo_conf.root / repo_conf.path |         repo_conf.root / repo_conf.path | ||||||
|     ).parent / repo_conf.health_check.immutable_path |     ).parent / repo_conf.health_check.immutable_path | ||||||
|     if not immutable_dir.exists(): |     if not new_immutable_dir.exists(): | ||||||
|  |         for file_path in sorted(immutable_dir.glob("**/*")): | ||||||
|  |             relative_file_path = str(file_path.relative_to(immutable_dir)) | ||||||
|  |             if relative_file_path not in file_names: | ||||||
|  |                 logger.error( | ||||||
|  |                     f"Immutable file exists in {immutable_dir}, " | ||||||
|  |                     f"but not found in health check: {relative_file_path}." | ||||||
|  |                 ) | ||||||
|  |                 logger.error( | ||||||
|  |                     f"Recommnd to move immutable files (keeping nested structure) to {new_immutable_dir}." | ||||||
|  |                 ) | ||||||
|  |                 sys.exit(1) | ||||||
|         return file_sums, file_names |         return file_sums, file_names | ||||||
|  |     immutable_dir = new_immutable_dir | ||||||
|     file_sums = [] |     file_sums = [] | ||||||
|     file_names = [] |     file_names = [] | ||||||
|     for file_path in sorted(immutable_dir.glob("**/*")): |     for file_path in sorted(immutable_dir.glob("**/*")): | ||||||
|  |  | ||||||
							
								
								
									
										33
									
								
								tests/convert/full/immutable/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tests/convert/full/immutable/.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | *.avi filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.bz2 filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.djvu filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.doc filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.docx filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.epub filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.gz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ipynb filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.jpeg filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.JPEG filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.jpg filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.JPG filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.mkv filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.mp4 filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ods filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.odt filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.otf filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.pdf filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.PDF filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.png filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.PNG filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ppt filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.pptx filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ps filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.rar filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.tar filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.tgz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.ttf filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.webm filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.xls filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.xlsx filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.xz filter=lfs diff=lfs merge=lfs -text | ||||||
|  | *.zip filter=lfs diff=lfs merge=lfs -text | ||||||
							
								
								
									
										19
									
								
								tests/convert/full/immutable/.gitea/workflows/push.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tests/convert/full/immutable/.gitea/workflows/push.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | name: Run JOJ3 on Push | ||||||
|  | on: [push] | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   run: | ||||||
|  |     container: | ||||||
|  |       runs-on: focs-latest-slim | ||||||
|  |       volumes: | ||||||
|  |         - /home/tt/.config:/home/tt/.config | ||||||
|  |         - /home/tt/.cache:/home/tt/.cache | ||||||
|  |         - /home/tt/.ssh:/home/tt/.ssh | ||||||
|  |     steps: | ||||||
|  |       - name: Check out repository code | ||||||
|  |         uses: actions/checkout@focs | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - name: Run joj3 | ||||||
|  |         run: | | ||||||
|  |           sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/homework | ||||||
							
								
								
									
										21
									
								
								tests/convert/full/immutable/.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tests/convert/full/immutable/.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | name: Run JOJ3 on Release | ||||||
|  | on: | ||||||
|  |   release: | ||||||
|  |     types: [published] | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   run: | ||||||
|  |     runs-on: focs-latest-slim | ||||||
|  |     container: | ||||||
|  |       volumes: | ||||||
|  |         - /home/tt/.config:/home/tt/.config | ||||||
|  |         - /home/tt/.cache:/home/tt/.cache | ||||||
|  |         - /home/tt/.ssh:/home/tt/.ssh | ||||||
|  |     steps: | ||||||
|  |       - name: Check out repository code | ||||||
|  |         uses: actions/checkout@focs | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - name: Run joj3 | ||||||
|  |         run: | | ||||||
|  |           sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ gitea.ref_name }}" | ||||||
							
								
								
									
										23
									
								
								tests/convert/full/immutable/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tests/convert/full/immutable/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | ################################ | ||||||
|  | ## White list based gitignore ## | ||||||
|  | ################################ | ||||||
|  | 
 | ||||||
|  | # forbidden | ||||||
|  | * | ||||||
|  | .* | ||||||
|  | 
 | ||||||
|  | # allowed | ||||||
|  | !.gitignore | ||||||
|  | !.gitattributes | ||||||
|  | !.gitea/ | ||||||
|  | !.gitea/issue_template/ | ||||||
|  | !.gitea/workflows/ | ||||||
|  | !*.yaml | ||||||
|  | !Makefile | ||||||
|  | !CMakeLists.txt | ||||||
|  | !h[0-8]/ | ||||||
|  | !*.m | ||||||
|  | !*.c | ||||||
|  | !*.cpp | ||||||
|  | !*.h | ||||||
|  | !*.md | ||||||
|  | @ -64,8 +64,8 @@ | ||||||
|                                     "-repoSize=10.0", |                                     "-repoSize=10.0", | ||||||
|                                     "-meta=README.md", |                                     "-meta=README.md", | ||||||
|                                     "-meta=Changelog.md", |                                     "-meta=Changelog.md", | ||||||
|                                     "-checkFileSumList=", |                                     "-checkFileSumList=b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,2ba059f3977e2e3dee6cacbfbf0ba2578baa1b8e04b4977aec400868b6e49856,3db23f7fb2ca9814617e767ddc41b77073180b3b0b73e87b5f2a6d3129f88f3a,a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc", | ||||||
|                                     "-checkFileNameList=" |                                     "-checkFileNameList=.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml,.gitignore" | ||||||
|                                 ] |                                 ] | ||||||
|                             }, |                             }, | ||||||
|                             { |                             { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user