Three failures, all from the workflow inheriting whatever the runner happened to have rather than declaring what it needs. - backend ran pytest without installing it. pytest is in requirements-dev.txt, which nothing installed, so the step died with "No module named pytest". - Both Python jobs used the runner's system interpreter. The old host executor had a matching Python by accident; a container image has 3.10, where alembic additionally requires tomli. requirements.txt is hash-pinned and compiled on 3.14, so tomli has no hash and pip refuses the whole install under --require-hashes. 3.14 matches the Dockerfile, the README and the .github workflow. - The utf8mb4 step shelled out to the mysql client, which is not in every runner image. pymysql is already a runtime dependency.
5.7 KiB
5.7 KiB