fix: include correct main plugin file in ZIP package #23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Plugin Check | |
on: | |
push: | |
branches: [ main, develop ] | |
pull_request: | |
branches: [ main, develop ] | |
jobs: | |
plugin-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.0' | |
extensions: mbstring, xml, mysqli | |
coverage: none | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: 'npm' | |
- name: Install Composer dependencies | |
run: composer install --no-dev --optimize-autoloader | |
- name: Install npm dependencies | |
run: npm ci | |
- name: Build plugin assets | |
run: npm run build | |
- name: Setup WordPress environment | |
run: | | |
# Download WordPress | |
wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz | |
tar -xzf wordpress.tar.gz | |
# Download Plugin Check plugin | |
wget -O plugin-check.zip https://downloads.wordpress.org/plugin/plugin-check.latest-stable.zip | |
unzip plugin-check.zip -d wordpress/wp-content/plugins/ | |
- name: Create plugin package | |
run: | | |
# Create a clean plugin directory | |
mkdir -p wordpress/wp-content/plugins/woo-mcp | |
# Copy plugin files (excluding development files) | |
rsync -av --exclude-from=.distignore . wordpress/wp-content/plugins/woo-mcp/ | |
# Ensure we have the main plugin file | |
ls -la wordpress/wp-content/plugins/woo-mcp/ | |
- name: Run Plugin Check | |
run: | | |
cd wordpress | |
# Initialize WordPress (minimal setup) | |
php -r " | |
define('ABSPATH', __DIR__ . '/'); | |
define('WPINC', 'wp-includes'); | |
define('WP_CONTENT_DIR', __DIR__ . '/wp-content'); | |
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins'); | |
// Load WordPress functions | |
require_once(ABSPATH . 'wp-includes/functions.php'); | |
require_once(ABSPATH . 'wp-includes/class-wp-error.php'); | |
require_once(ABSPATH . 'wp-includes/option.php'); | |
// Mock database functions | |
function get_option(\$option, \$default = false) { return \$default; } | |
function update_option(\$option, \$value) { return true; } | |
function add_option(\$option, \$value) { return true; } | |
function delete_option(\$option) { return true; } | |
function wp_die(\$message) { echo \$message; exit(1); } | |
// Load Plugin Check | |
require_once(WP_PLUGIN_DIR . '/plugin-check/plugin-check.php'); | |
// Check our plugin | |
\$checker = new Plugin_Check(); | |
\$result = \$checker->check_plugin('woo-mcp'); | |
if (is_wp_error(\$result)) { | |
echo 'Plugin Check failed: ' . \$result->get_error_message(); | |
exit(1); | |
} | |
echo 'Plugin Check passed successfully!'; | |
" | |
- name: Validate plugin structure | |
run: | | |
cd wordpress/wp-content/plugins/woo-mcp | |
# Check required files exist | |
test -f wordpress-mcp.php || (echo "Main plugin file missing" && exit 1) | |
test -f readme.txt || (echo "readme.txt missing" && exit 1) | |
test -f uninstall.php || (echo "uninstall.php missing" && exit 1) | |
test -d languages || (echo "languages directory missing" && exit 1) | |
test -f languages/wordpress-mcp.pot || (echo "POT file missing" && exit 1) | |
# Check plugin header | |
grep -q "Plugin Name:" wordpress-mcp.php || (echo "Plugin Name header missing" && exit 1) | |
grep -q "Version:" wordpress-mcp.php || (echo "Version header missing" && exit 1) | |
grep -q "Requires at least:" wordpress-mcp.php || (echo "Requires at least header missing" && exit 1) | |
grep -q "Tested up to:" wordpress-mcp.php || (echo "Tested up to header missing" && exit 1) | |
grep -q "Requires PHP:" wordpress-mcp.php || (echo "Requires PHP header missing" && exit 1) | |
grep -q "License:" wordpress-mcp.php || (echo "License header missing" && exit 1) | |
grep -q "Text Domain:" wordpress-mcp.php || (echo "Text Domain header missing" && exit 1) | |
echo "All required files and headers present!" | |
- name: PHP Lint Check | |
run: | | |
cd wordpress/wp-content/plugins/woo-mcp | |
find . -name "*.php" -exec php -l {} \; | grep -v "No syntax errors" |