Skip to content

fix: include correct main plugin file in ZIP package #23

fix: include correct main plugin file in ZIP package

fix: include correct main plugin file in ZIP package #23

Workflow file for this run

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"