Skip to content

ci: run Plugin Check on the built plugin archive - #830

Open
josephfusco wants to merge 3 commits into
mainfrom
ci/plugin-check-built-zip
Open

josephfusco wants to merge 3 commits into
mainfrom
ci/plugin-check-built-zip

Conversation

@josephfusco

Copy link
Copy Markdown
Member

Plugin Check has been failing on every plugin PR, and on main too. Most of its errors were false positives: the workflow pointed it at the raw source folder, so it flagged dev files that never ship. On #829, 15 of 17 errors were .env.dist, .editorconfig, .wp-env.json, phpstan.neon.dist, bin/*.sh, and .docker/*.

What changes

  • Plugin Check runs on the built zip. The job installs production dependencies with the existing setup-php-composer action, builds the zip with composer archive (the same command release-plugin.yml uses for releases), and checks the unpacked result. The check now covers exactly what users install.
  • plugin_updater_detected is ignored. Every plugin sets an Update URI header on purpose because they ship through GitHub Releases and Composer, not WordPress.org.
  • wpgraphql-logging no longer ships .gitkeep files. Its zip included assets/.gitkeep and src/Logger/.gitkeep, which Plugin Check would flag as hidden files. They're now in its archive.exclude.

Not changed

The "Tested up to" header is behind on every plugin: 6.9 or 7.0 against WordPress 7.1. Raising it means claiming the plugins were tested on 7.1, so that's left for a separate decision.

Testing

Ran composer archive locally for all five plugins and listed what's inside. After this change, no zip contains hidden files, shell scripts, or dev config outside vendor/.

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Assisting with diagnosing the Plugin Check false positives and pointing the check at the built archive.

@changeset-bot

changeset-bot Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: f165dc2

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

📦 Plugin Artifacts Ready!

Download from GitHub Actions run

Available plugins:

  • ✅ wpgraphql-logging.zip

See the "Artifacts" section at the bottom of the Actions run page

@josephfusco josephfusco added [Type] Task Maintenance, upkeep, and other non-functional work [Area] Infrastructure Issues for the repository infrastructure github_actions Pull requests that update GitHub Actions code labels Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 WordPress Plugin Check Report

❌ Status: Failed

📊 Report

🎯 Total Issues ❌ Errors ⚠️ Warnings
10 10 0

❌ Errors (10)

📁 wpgraphql-logging.php (1 error)
📍 Line 🔖 Check 💬 Message
0 plugin_header_invalid_requires_php The "Requires PHP" header in the plugin file should only contain a PHP version such as "5.2.4" or "7.0".
📁 src/Admin/View/Download/DownloadLogService.php (1 error)
📍 Line 🔖 Check 💬 Message
65 WordPress.WP.AlternativeFunctions.file_system_operations_fclose File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().
📁 readme.txt (2 errors)
📍 Line 🔖 Check 💬 Message
0 outdated_tested_upto_header Tested up to: 6.9 < 7.1. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.
0 readme_mismatched_header_requires_php Mismatched Requires PHP: 8.1.2 != 8.1.2+. "Requires PHP" needs to be exactly the same with that in your main plugin file's header.
📁 activation.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
📁 deactivation.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
📁 src/Admin/View/Templates/WPGraphQLLoggerView.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
📁 src/Admin/View/Templates/WPGraphQLLoggerNotice.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
📁 src/Admin/View/List/ListTable.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
📁 src/Admin/Settings/Templates/admin.php (1 error)
📍 Line 🔖 Check 💬 Message
0 missing_direct_file_access_protection PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Area] Infrastructure Issues for the repository infrastructure github_actions Pull requests that update GitHub Actions code [Type] Task Maintenance, upkeep, and other non-functional work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant