[CI] Re-add generated files consistency check

pull/1680/head
Fabio Alessandrelli 2024-12-30 17:10:36 +01:00
parent c4f1abe3f9
commit 0cfe01eff2
2 changed files with 34 additions and 16 deletions

View File

@ -32,3 +32,7 @@ jobs:
uses: pre-commit/action@v3.0.1
with:
extra_args: --verbose --hook-stage manual --files ${{ env.CHANGED_FILES }}
- name: Check generated files consistency
run:
python misc/scripts/check_get_file_list.py

View File

@ -6,26 +6,40 @@ from pathlib import Path
sys.path.insert(1, os.path.join(os.path.dirname(__file__), "..", ".."))
from binding_generator import generate_bindings, get_file_list
from binding_generator import _generate_bindings, _get_file_list
from build_profile import generate_trimmed_api
api_filepath = "gdextension/extension_api.json"
bits = "64"
precision = "single"
output_dir = "self_test"
generate_bindings(api_filepath, use_template_get_node=False, bits=bits, precision=precision, output_dir=output_dir)
flist = get_file_list(api_filepath, output_dir, headers=True, sources=True)
p = Path(output_dir) / "gen"
allfiles = [str(f.as_posix()) for f in p.glob("**/*.*")]
missing = list(filter((lambda f: f not in flist), allfiles))
extras = list(filter((lambda f: f not in allfiles), flist))
if len(missing) > 0 or len(extras) > 0:
def test(profile_filepath=""):
api = generate_trimmed_api(api_filepath, profile_filepath)
_generate_bindings(
api,
use_template_get_node=False,
bits=bits,
precision=precision,
output_dir=output_dir,
)
flist = _get_file_list(api, output_dir, headers=True, sources=True)
p = Path(output_dir) / "gen"
allfiles = [str(f.as_posix()) for f in p.glob("**/*.*")]
missing = list(filter((lambda f: f not in flist), allfiles))
extras = list(filter((lambda f: f not in allfiles), flist))
if len(missing) > 0 or len(extras) > 0:
print("Error!")
for f in missing:
print("MISSING: " + str(f))
for f in extras:
print("EXTRA: " + str(f))
sys.exit(1)
else:
else:
print("OK!")
test()
test("test/build_profile.json")