Files
f1-circuits/merge-check.sh
jochen 3c8a927218 Check f1-circuits' service code before a change merges into what the mesh builds (hq ADR 0237)
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.
2026-10-06 22:23:29 +02:00

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"