Skip to content

Commit

Permalink
[CI] Re-add generated files consistency check
Browse files Browse the repository at this point in the history
  • Loading branch information
Faless committed Jan 7, 2025
1 parent 00a450f commit 5ea86b4
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 17 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/static_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
48 changes: 31 additions & 17 deletions misc/scripts/check_get_file_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,40 @@

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:
print("Error!")
for f in missing:
print("MISSING: " + str(f))
for f in extras:
print("EXTRA: " + str(f))
sys.exit(1)
else:
print("OK!")

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:
print("OK!")


test()
test("test/build_profile.json")

0 comments on commit 5ea86b4

Please sign in to comment.