mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-08-29 12:03:14 +00:00
Three things that would not have scaled to 70 roles: - The Python and Ansible dependency pins were about to be copied into every role. They now live once in molecule-shared/, which scenarios reference relatively, so they cannot drift apart. - The helper container images used for probing were hardcoded inline. They are pinned once in molecule-shared/vars.yml, carry `# renovate:` annotations, and a custom manager in .github/renovate.json keeps them current - verified with a local Renovate dry run, which offers curl 8.11.1 -> 8.21.0 and python 3.13 -> 3.14-alpine. Seventy invisible hardcodes is the blindness class we have been removing elsewhere. - Running a scenario meant knowing the venv and cd incantation. `just molecule <role>` does it, and with no argument lists the roles that have a scenario. Molecule is deliberately not wired into prek: a run takes minutes, pulls images and needs Docker, which is fine on request and not fine per commit. docs/molecule-testing.md covers how to run and write these, including the four things a role here needs that a standalone role does not. AGENTS.md points at it rather than carrying the detail. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
17 lines
836 B
YAML
17 lines
836 B
YAML
---
|
|
# Helper container images the scenarios use for probing. They live here rather
|
|
# than inline in each verify.yml so that there is one pin per image instead of
|
|
# one per role, and so Renovate can see them (see the customManager in
|
|
# .github/renovate.json).
|
|
|
|
# Used to reach a role's container over its own container network. A helper is
|
|
# needed because the role publishes no host port - exactly as in a real
|
|
# deployment - and publishing one for the test would collide between scenarios
|
|
# running in parallel.
|
|
# renovate: datasource=docker depName=docker.io/curlimages/curl
|
|
molecule_shared_image_curl: "docker.io/curlimages/curl:8.11.1"
|
|
|
|
# Used for small stub services (a fake homeserver, and so on).
|
|
# renovate: datasource=docker depName=docker.io/library/python
|
|
molecule_shared_image_python: "docker.io/library/python:3.13-alpine"
|