1+ name : Extension Validation
2+
3+ on :
4+ push :
5+ branches : [ main, develop ]
6+ pull_request :
7+ branches : [ main ]
8+
9+ jobs :
10+ validate :
11+ runs-on : ubuntu-latest
12+
13+ steps :
14+ - uses : actions/checkout@v4
15+
16+ - name : Setup Node.js
17+ uses : actions/setup-node@v4
18+ with :
19+ node-version : ' 18'
20+
21+ - name : Validate manifest.json
22+ run : |
23+ if [ -f manifest.json ]; then
24+ echo "✅ manifest.json found"
25+ # Basic JSON validation
26+ cat manifest.json | python -m json.tool > /dev/null
27+ echo "✅ manifest.json is valid JSON"
28+ else
29+ echo "❌ manifest.json not found"
30+ exit 1
31+ fi
32+
33+ - name : Validate package.json
34+ run : |
35+ if [ -f package.json ]; then
36+ echo "✅ package.json found"
37+ cat package.json | python -m json.tool > /dev/null
38+ echo "✅ package.json is valid JSON"
39+ else
40+ echo "❌ package.json not found"
41+ exit 1
42+ fi
43+
44+ - name : Check required files
45+ run : |
46+ files=("background.js" "content.js" "options.html" "options.js" "README.md" "LICENSE")
47+ for file in "${files[@]}"; do
48+ if [ -f "$file" ]; then
49+ echo "✅ $file found"
50+ else
51+ echo "❌ $file not found"
52+ exit 1
53+ fi
54+ done
55+
56+ - name : Check icons directory
57+ run : |
58+ if [ -d "icons" ]; then
59+ echo "✅ icons directory found"
60+ icon_files=("icon16.png" "icon48.png" "icon128.png")
61+ for icon in "${icon_files[@]}"; do
62+ if [ -f "icons/$icon" ]; then
63+ echo "✅ icons/$icon found"
64+ else
65+ echo "❌ icons/$icon not found"
66+ exit 1
67+ fi
68+ done
69+ else
70+ echo "❌ icons directory not found"
71+ exit 1
72+ fi
73+
74+ - name : Validate JavaScript syntax
75+ run : |
76+ # Check if JavaScript files have basic syntax validity
77+ for js_file in *.js; do
78+ if [ -f "$js_file" ]; then
79+ echo "Checking $js_file..."
80+ node -c "$js_file"
81+ echo "✅ $js_file syntax is valid"
82+ fi
83+ done
84+
85+ - name : Extension validation complete
86+ run : echo "🎉 All validation checks passed!"
0 commit comments