mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-08-30 20:43:13 +00:00
`matrix_bridge_mautrix_discord_bridge_double_puppet_server_map_default` was built from `matrix_bridge_beeper_linkedin_homeserver_domain` and `..._homeserver_address` - a different role's variables, copy-pasted along with the expression. No user is affected today: group_vars/matrix_servers points both roles' `homeserver_address` at `matrix_addons_homeserver_client_api_url` and both domains at `matrix_domain`, so the rendered value is identical either way. It only diverges for someone who overrides beeper-linkedin's homeserver settings, where mautrix-discord would silently follow them. It does not survive mautrix-discord being used without beeper-linkedin's defaults in scope, which is how the Molecule scenario found it: with only the one role loaded, the template fails on the undefined name. The scenario's neutralising override is dropped in the same commit, so the expression is now exercised rather than bypassed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SEH3vxYSQ5SV4N5z61eyGT
98 lines
4.1 KiB
YAML
98 lines
4.1 KiB
YAML
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
---
|
|
dependency:
|
|
name: galaxy
|
|
options:
|
|
requirements-file: requirements.yml
|
|
force: true
|
|
driver:
|
|
name: docker
|
|
platforms:
|
|
- name: mautrix-discord-${MOLECULE_DISTRO:-ubuntu2604}-default
|
|
image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2604}-ansible:latest"
|
|
command: ${MOLECULE_DOCKER_COMMAND:-""}
|
|
volumes:
|
|
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
|
cgroupns_mode: host
|
|
privileged: true
|
|
pre_build_image: true
|
|
provisioner:
|
|
name: ansible
|
|
config_options:
|
|
defaults:
|
|
callback_result_format: yaml
|
|
inventory:
|
|
group_vars:
|
|
all:
|
|
matrix_bridge_mautrix_discord_container_network: mautrix-discord-molecule
|
|
|
|
# The homeserver stub prepare.yml stands up. The bridge contacts it
|
|
# while starting; it is not a real homeserver and nothing is asserted
|
|
# about it. There is deliberately no Discord on the other side either -
|
|
# see docs/molecule-testing.md.
|
|
matrix_bridge_mautrix_discord_homeserver_address: http://matrix.molecule.local:8008
|
|
|
|
# sqlite keeps the scenario to one container. The role only requires a
|
|
# database hostname when the engine is postgres, and testing which
|
|
# database engine the bridge can talk to is not what this proves.
|
|
matrix_bridge_mautrix_discord_database_engine: sqlite
|
|
|
|
# Appservice tokens. These are what the bridge and homeserver would
|
|
# authenticate to each other with; here they only have to reach the
|
|
# rendered configuration and the registration file.
|
|
matrix_bridge_mautrix_discord_appservice_token: molecule_as_token_d15c07
|
|
matrix_bridge_mautrix_discord_homeserver_token: molecule_hs_token_a4e2b8
|
|
|
|
# Deliberately different from the role's defaults, so verify.yml can
|
|
# tell what the role rendered apart from what the bridge would have
|
|
# defaulted to on its own.
|
|
matrix_bridge_mautrix_discord_appservice_bot_username: molecule-discordbot
|
|
matrix_bridge_mautrix_discord_homeserver_domain: molecule.local
|
|
matrix_bridge_mautrix_discord_bridge_command_prefix: "!molecule-discord"
|
|
# The role defaults to `warn`; the bridge's own shipped configuration
|
|
# uses `debug`. `info` is neither.
|
|
matrix_bridge_mautrix_discord_logging_level: info
|
|
|
|
# Unlike most bridge roles here, mautrix-discord *requires* a public
|
|
# address: `validate_config.yml` fails without
|
|
# `matrix_bridge_mautrix_discord_bridge_public_address`, which is
|
|
# derived from these three. Discord fetches avatars over it in relay
|
|
# mode; nothing reaches it in this scenario, but it has to be set for
|
|
# the role to run at all.
|
|
#
|
|
# A non-`/` path prefix and a non-default scheme are chosen so the
|
|
# avatar-proxy labels verify.yml reads can only look the way they do if
|
|
# the role composed them from these values.
|
|
matrix_bridge_mautrix_discord_hostname: discord.molecule.local
|
|
matrix_bridge_mautrix_discord_path_prefix: /discord-bridge
|
|
matrix_bridge_mautrix_discord_scheme: http
|
|
matrix_bridge_mautrix_discord_bridge_avatar_proxy_key: molecule_avatar_proxy_key_7c1d
|
|
|
|
# verify.yml runs as its own play, where role defaults are out of scope,
|
|
# so the paths it reads are pinned here as literals matching what the
|
|
# role derives from matrix_base_data_path.
|
|
matrix_bridge_mautrix_discord_base_path: /matrix/mautrix-discord
|
|
matrix_bridge_mautrix_discord_config_path: /matrix/mautrix-discord/config
|
|
matrix_bridge_mautrix_discord_data_path: /matrix/mautrix-discord/data
|
|
env:
|
|
# Workaround for https://github.com/ansible/molecule/issues/4391
|
|
ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../..:/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:${ANSIBLE_HOME:-~/.ansible}/roles
|
|
scenario:
|
|
test_sequence:
|
|
- dependency
|
|
- cleanup
|
|
- destroy
|
|
- syntax
|
|
- create
|
|
- prepare
|
|
- converge
|
|
- idempotence
|
|
- verify
|
|
- cleanup
|
|
- destroy
|
|
verifier:
|
|
name: ansible
|