diff --git a/merge-check.sh b/merge-check.sh new file mode 100644 index 0000000..9c4d3ff --- /dev/null +++ b/merge-check.sh @@ -0,0 +1,23 @@ +#!/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"