# What NOT to upload to Cloud Build. Without this file gcloud uploads the whole
# directory — .git is 20 MB and .venv is 101 MB, none of which the image uses,
# on every single build.
#
# Deliberately not the default gcloudignore behaviour of honouring .gitignore:
# .venv is git-ignored and would be excluded, but so is nothing else that
# matters, and an ignore file that silently follows another file is one more
# place a build can lose something it needed. Everything here is explicit.

.git/
.gitignore
.worktrees/
.venv/
**/__pycache__/
**/*.pyc
.pytest_cache/
.ruff_cache/

# Not part of the running service.
#
# `docs/` was here and is not: the Help page reads those files off the disk at
# render time, so they ARE part of the running service now. The build failed at
# `COPY docs/` with "file not found in build context or excluded by
# .dockerignore" — on a commit whose whole test suite was green, because nothing
# in CI builds an image. `test_the_container_carries_the_documents` reads this
# file as well as the Dockerfile for exactly that reason: two files decide
# whether a document reaches production and only one of them was being checked.
tests/
# The table CI cuts its eight test groups from. Test-time, like `tests/` above.
.test_durations
deploy/RUNBOOK.md
gcloud_deploy.sh
# `design/` is the other half of that lesson, from the other direction: these are
# design records for whoever changes a subsystem, the Help page has never named
# one, and nothing reads them at run time. They are excluded because they are not
# the service — not because nothing noticed them.
design/
