11#! /usr/bin/env bash
22set -eux
33export ANSIBLE_CALLBACKS_ENABLED=profile_tasks
4- export ANSIBLE_ROLES_PATH=../
54
65SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
7- MANIFEST_PATH=" ${SCRIPT_DIR} /mcpservers.json"
6+ INTEGRATION_DIR=" $( cd " ${SCRIPT_DIR} /../.." && pwd) "
7+ # Use shared mcpservers.json from integration directory (can be overridden per-target if needed)
8+ MANIFEST_PATH=" ${INTEGRATION_DIR} /mcpservers.json"
89INVENTORY=" ${SCRIPT_DIR} /inventory.yml"
10+ # Try to use the role's playbook first (for local testing), fall back to target's playbook (for ansible-test)
11+ ROLE_PLAYBOOK=" ${INTEGRATION_DIR} /roles/setup/setup_inventory.yml"
12+ TARGET_PLAYBOOK=" ${SCRIPT_DIR} /setup_tasks.yml"
13+ if [ -f " ${ROLE_PLAYBOOK} " ]; then
14+ SETUP_PLAYBOOK=" ${ROLE_PLAYBOOK} "
15+ export ANSIBLE_ROLES_PATH=" ${INTEGRATION_DIR} /roles"
16+ else
17+ # Fallback for ansible-test (roles/ directory not copied)
18+ SETUP_PLAYBOOK=" ${TARGET_PLAYBOOK} "
19+ fi
920
1021# Cleanup function to remove generated inventory file
1122cleanup () {
@@ -17,16 +28,17 @@ cleanup() {
1728# Set up trap early to ensure cleanup runs on error/early exit
1829trap cleanup EXIT
1930
31+ # Get GitHub PAT from environment variables (github_mcp_pat should be set by zuul/ansible-test)
2032GITHUB_PAT_VALUE=" ${github_mcp_pat:- ${ANSIBLE_TEST_GITHUB_PAT:- ${GITHUB_PAT:- ${GITHUB_TOKEN:- ${GITHUB_PERSONAL_ACCESS_TOKEN:- } } } } } "
2133
22- # Generate inventory file with PAT injected from template
23- # This will overwrite the existing inventory.yml file with the generated version
24- GENERATE_INVENTORY= " ${SCRIPT_DIR} /generate_inventory.yml "
25- if [ -n " ${GITHUB_PAT_VALUE:- } " ] ; then
26- ansible-playbook -c local " ${GENERATE_INVENTORY} " - e " github_mcp_pat= ${GITHUB_PAT_VALUE} " -e " ansible_mcp_manifest_path=${MANIFEST_PATH} " " $@ "
27- else
28- ansible-playbook -c local " ${GENERATE_INVENTORY} " - e " ansible_mcp_manifest_path =${MANIFEST_PATH } " " $@ "
29- fi
34+ # Generate inventory file using setup playbook
35+ # Always pass github_mcp_pat (even if empty) so template can check if it's defined
36+ ansible-playbook -c local " ${SETUP_PLAYBOOK} " \
37+ -e " github_mcp_pat= ${GITHUB_PAT_VALUE:- } " \
38+ - e " ansible_mcp_manifest_path=${MANIFEST_PATH} " \
39+ -e " ansible_mcp_inventory_file= ${INVENTORY} " \
40+ - e " ansible_mcp_inventory_dir =${SCRIPT_DIR } " \
41+ " $@ "
3042
3143# Run integration tests
3244ansible-playbook -i " ${INVENTORY} " " ${SCRIPT_DIR} /tasks/main.yml" -e " ansible_mcp_manifest_path=${MANIFEST_PATH} " " $@ "
0 commit comments