@@ -2,9 +2,9 @@ name: Validate Examples
22
33on :
44 push :
5- branches : [ main, develop ]
5+ branches : [main, develop]
66 pull_request :
7- branches : [ main, develop ]
7+ branches : [main, develop]
88 schedule :
99 # Run weekly to catch dependency issues
1010 - cron : ' 0 0 * * 0'
@@ -40,21 +40,21 @@ jobs:
4040 matrix :
4141 example : ${{ fromJson(needs.detect-changes.outputs.examples) }}
4242 fail-fast : false
43-
43+
4444 steps :
4545 - uses : actions/checkout@v4
4646
4747 - name : Validate example structure
4848 run : |
4949 example="${{ matrix.example }}"
5050 echo "Validating structure for: $example"
51-
51+
5252 # Check if directory exists
5353 if [ ! -d "$example" ]; then
5454 echo "❌ Example directory does not exist: $example"
5555 exit 1
5656 fi
57-
57+
5858 # Check for required files
5959 required_files=("README.md")
6060 for file in "${required_files[@]}"; do
@@ -63,15 +63,14 @@ jobs:
6363 exit 1
6464 fi
6565 done
66-
66+
6767 # Check for docker-compose file
6868 if [ ! -f "$example/docker-compose.yml" ] && [ ! -f "$example/docker-compose.yaml" ]; then
6969 echo "❌ Missing docker-compose file in: $example"
7070 exit 1
7171 fi
72-
73- echo "✅ Structure validation passed for: $example"
7472
73+ echo "✅ Structure validation passed for: $example"
7574
7675 validate-docker-compose :
7776 runs-on : ubuntu-latest
@@ -81,17 +80,17 @@ jobs:
8180 matrix :
8281 example : ${{ fromJson(needs.detect-changes.outputs.examples) }}
8382 fail-fast : false
84-
83+
8584 steps :
8685 - uses : actions/checkout@v4
8786
8887 - name : Validate Docker Compose files
8988 run : |
9089 example="${{ matrix.example }}"
9190 echo "Validating Docker Compose for: $example"
92-
91+
9392 cd "$example"
94-
93+
9594 # Find docker-compose file
9695 compose_file=""
9796 if [ -f "docker-compose.yml" ]; then
@@ -102,13 +101,13 @@ jobs:
102101 echo "❌ No docker-compose file found in: $example"
103102 exit 1
104103 fi
105-
104+
106105 # Validate compose file syntax
107106 if ! docker compose -f "$compose_file" config > /dev/null; then
108107 echo "❌ Invalid docker-compose syntax in: $example/$compose_file"
109108 exit 1
110109 fi
111-
110+
112111 echo "✅ Docker Compose validation passed for: $example"
113112
114113 security-scan :
@@ -119,30 +118,30 @@ jobs:
119118 matrix :
120119 example : ${{ fromJson(needs.detect-changes.outputs.examples) }}
121120 fail-fast : false
122-
121+
123122 steps :
124123 - uses : actions/checkout@v4
125124
126125 - name : Security scan
127126 run : |
128127 example="${{ matrix.example }}"
129128 echo "Running security scan for: $example"
130-
129+
131130 # Check for common security issues
132131 security_issues=0
133-
132+
134133 # Check for hardcoded secrets (basic patterns)
135134 if grep -r -i -E "(password|secret|key|token).*=.*['\"][^'\"]{8,}['\"]" "$example/" 2>/dev/null; then
136135 echo "⚠️ Potential hardcoded secrets found in: $example"
137136 security_issues=$((security_issues + 1))
138137 fi
139-
138+
140139 # Check for exposed sensitive ports
141140 if grep -E "ports:.*:(22|3306|5432|6379|27017)" "$example"/*.yml "$example"/*.yaml 2>/dev/null; then
142141 echo "⚠️ Potentially sensitive ports exposed in: $example"
143142 security_issues=$((security_issues + 1))
144143 fi
145-
144+
146145 if [ $security_issues -gt 0 ]; then
147146 echo "⚠️ Security scan completed with $security_issues potential issues in: $example"
148147 else
@@ -153,28 +152,28 @@ jobs:
153152 runs-on : ubuntu-latest
154153 needs : [detect-changes, validate-structure, validate-docker-compose, security-scan]
155154 if : always()
156-
155+
157156 steps :
158157 - name : Validation Summary
159158 run : |
160159 echo "## Validation Summary" >> $GITHUB_STEP_SUMMARY
161160 echo "" >> $GITHUB_STEP_SUMMARY
162-
161+
163162 examples="${{ needs.detect-changes.outputs.examples }}"
164163 if [ "$examples" == "[]" ] || [ "$examples" == "" ]; then
165164 echo "No examples were modified or detected for validation." >> $GITHUB_STEP_SUMMARY
166165 else
167166 echo "Validated examples: $examples" >> $GITHUB_STEP_SUMMARY
168167 echo "" >> $GITHUB_STEP_SUMMARY
169-
168+
170169 # Check job results
171170 structure_result="${{ needs.validate-structure.result }}"
172171 compose_result="${{ needs.validate-docker-compose.result }}"
173172 security_result="${{ needs.security-scan.result }}"
174-
173+
175174 echo "| Check | Status |" >> $GITHUB_STEP_SUMMARY
176175 echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
177176 echo "| Structure | $structure_result |" >> $GITHUB_STEP_SUMMARY
178177 echo "| Docker Compose | $compose_result |" >> $GITHUB_STEP_SUMMARY
179178 echo "| Security Scan | $security_result |" >> $GITHUB_STEP_SUMMARY
180- fi
179+ fi
0 commit comments