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