-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathvalidate-porting-simple.sh
More file actions
executable file
·113 lines (89 loc) · 5.07 KB
/
Copy pathvalidate-porting-simple.sh
File metadata and controls
executable file
·113 lines (89 loc) · 5.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
# Simplified Porting Validation Script
# This script validates that all components required for successful porting are present
echo "🔍 Validating Python Reference Implementation for Multi-Language Porting"
echo "================================================================"
# Color codes for output
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Counter for validation results
PASS_COUNT=0
FAIL_COUNT=0
# Function to report validation results
validate() {
local test_name="$1"
local test_command="$2"
if eval "$test_command" &>/dev/null; then
echo -e "${GREEN}✅ PASS${NC}: $test_name"
((PASS_COUNT++))
else
echo -e "${RED}❌ FAIL${NC}: $test_name"
((FAIL_COUNT++))
fi
}
echo -e "${BLUE}📋 Repository Structure Validation${NC}"
echo "-----------------------------------"
validate "MCP Server source directory exists" "[ -d 'src/mcp_server' ]"
validate "Agent client source directory exists" "[ -d 'src/agent' ]"
validate "Infrastructure directory exists" "[ -d 'infra' ]"
validate "AI Foundry agent modules exist" "[ -d 'infra/agent' ]"
echo -e "\n${BLUE}📦 MCP Server Component Validation${NC}"
echo "-----------------------------------"
validate "Function app implementation exists" "[ -f 'src/mcp_server/function_app.py' ]"
validate "Function app has MCP tool triggers" "grep -q 'mcpToolTrigger' src/mcp_server/function_app.py"
validate "Hello MCP tool implemented" "grep -q 'hello_mcp' src/mcp_server/function_app.py"
validate "Get snippet tool implemented" "grep -q 'get_snippet' src/mcp_server/function_app.py"
validate "Save snippet tool implemented" "grep -q 'save_snippet' src/mcp_server/function_app.py"
validate "MCP host.json uses experimental bundle" "grep -q 'Experimental' src/mcp_server/host.json"
validate "Function requirements.txt exists" "[ -f 'src/mcp_server/requirements.txt' ]"
echo -e "\n${BLUE}🤖 Agent Client Component Validation${NC}"
echo "------------------------------------"
validate "Agent main.py exists" "[ -f 'src/agent/main.py' ]"
validate "Uses Azure AI Projects SDK" "grep -q 'azure.ai.projects' src/agent/main.py"
validate "Uses DefaultAzureCredential" "grep -q 'DefaultAzureCredential' src/agent/main.py"
validate "Creates agents with MCP tools" "grep -q 'create_agent' src/agent/main.py"
validate "Agent requirements.txt exists" "[ -f 'src/agent/requirements.txt' ]"
validate "Environment example file exists" "[ -f 'src/agent/.env.example' ]"
echo -e "\n${BLUE}🏗️ Infrastructure Component Validation${NC}"
echo "--------------------------------------"
validate "Main Bicep template exists" "[ -f 'infra/main.bicep' ]"
validate "API Bicep module exists" "[ -f 'infra/app/api.bicep' ]"
validate "AI project modules exist" "[ -f 'infra/agent/standard-ai-project.bicep' ]"
validate "Infrastructure has AI integration" "grep -q 'ai.*project\|aiproject\|aiProject' infra/main.bicep"
validate "Function app uses Flex Consumption" "grep -qi 'flex.*consumption' infra/app/api.bicep"
validate "Azure YAML configuration exists" "[ -f 'azure.yaml' ]"
echo -e "\n${BLUE}📖 Documentation Validation${NC}"
echo "----------------------------"
validate "Main README exists" "[ -f 'README.md' ]"
validate "AI Foundry integration docs exist" "[ -f 'AI-FOUNDRY-INTEGRATION.md' ]"
validate "Porting prompt created" "[ -f '.github/prompts/PORTING_PROMPT.md' ]"
validate "Multi-language README created" "[ -f '.github/prompts/MULTI_LANGUAGE_README.md' ]"
echo -e "\n${BLUE}🔍 Environment Variables Validation${NC}"
echo "-----------------------------------"
validate "PROJECT_ENDPOINT documented" "grep -q 'PROJECT_ENDPOINT' src/agent/.env.example"
validate "MODEL_DEPLOYMENT_NAME documented" "grep -q 'MODEL_DEPLOYMENT_NAME' src/agent/.env.example"
validate "MCP_SERVER_URL documented" "grep -q 'MCP_SERVER_URL' src/agent/.env.example"
validate "MCP_EXTENSION_KEY documented" "grep -q 'MCP_EXTENSION_KEY' src/agent/.env.example"
echo -e "\n${BLUE}📝 Porting Documentation Validation${NC}"
echo "-----------------------------------"
validate "Porting prompt has .NET section" "grep -q '\.NET\|dotnet' .github/prompts/PORTING_PROMPT.md"
validate "Porting prompt has JavaScript section" "grep -q 'JavaScript\|TypeScript' .github/prompts/PORTING_PROMPT.md"
validate "Architecture overview documented" "grep -q 'Architecture' .github/prompts/PORTING_PROMPT.md"
validate "Infrastructure guidance included" "grep -q 'Infrastructure' .github/prompts/PORTING_PROMPT.md"
echo -e "\n================================================================"
echo -e "${BLUE}📋 Validation Summary${NC}"
echo "================================================================"
TOTAL_TESTS=$((PASS_COUNT + FAIL_COUNT))
echo " 📊 Total Tests: $TOTAL_TESTS"
echo " ✅ Passed: $PASS_COUNT"
echo " ❌ Failed: $FAIL_COUNT"
if [ $FAIL_COUNT -eq 0 ]; then
echo -e "\n${GREEN}🎉 ALL VALIDATIONS PASSED${NC}"
echo -e "${GREEN}✨ The Python reference implementation is ready for multi-language porting!${NC}"
exit 0
else
echo -e "\n${RED}⚠️ Some validations failed. Please address the issues above.${NC}"
exit 1
fi