The repository's layer of the mesh's merge check (mesh/repo-check): every Python file the image ships, parsed; what cannot run is said.
24 lines
1.2 KiB
Bash
24 lines
1.2 KiB
Bash
#!/bin/sh
|
|
# mesh-check-toolchain: go
|
|
#
|
|
# f1-circuits' own check (novox/hq ADR 0237): the second layer of a pull request's merge check,
|
|
# `mesh/repo-check`, run by the build seat in the mesh's Go toolchain, which carries Python for the merge
|
|
# checks that need it. The gate — the manifest through the controller the mesh runs, every machine
|
|
# composed with it — is the build seat's first layer (`mesh/merge-gate`), run because the mesh's module
|
|
# graph builds f1-circuits from this branch.
|
|
#
|
|
# What the image ships, compiled before the merge: every Python file the service's image copies, and the
|
|
# models it imports.
|
|
#
|
|
# **Said, never passed silently**: the service's dependencies (service/requirements.txt) are the image's to
|
|
# install, so the service is not started, and the repository has no tests.
|
|
set -eu
|
|
|
|
# Parsed, not compiled to files: a check leaves the tree as it found it.
|
|
find cdn-api.py circuits_service.py ergast_service.py posters_service.py models -name '*.py' -print0 |
|
|
xargs -0 python3 -c 'import ast, sys
|
|
for f in sys.argv[1:]:
|
|
ast.parse(open(f, encoding="utf-8").read(), f)
|
|
print(len(sys.argv) - 1, "Python file(s) parse")'
|
|
echo "NOT RUN HERE: the service (its dependencies are the image's to install); the repository has no tests"
|