Fix CI artifact double-zip so the plugin installs directly #14

Merged
thatguygriff merged 1 commits from fix/ci-artifact-double-zip into main 2026-06-05 15:36:41 +00:00
Owner

Fixes the "No valid plugins were found" error when installing the plugin downloaded from a Gitea Actions artifact.

Cause

Gitea/Actions re-zips artifacts on download. The build job uploaded the already-built dist/unsupervised-schedular-<version>.zip, so the downloaded archive was a zip containing a zip. WordPress unzips the upload, finds a .zip (no plugin folder/header at the top level), and rejects it.

Fix

Unpack the built zip in CI and upload the resulting plugin folder instead. The downloaded artifact archive's top level is then unsupervised-schedular/, which installs directly via Plugins → Add New → Upload Plugin.

Verified by simulating the exact CI steps locally — the re-zipped artifact's top-level entry is unsupervised-schedular/ with unsupervised-schedular.php inside.

Note

This affects the CI artifact only. The local composer build output in dist/ was always a correct single plugin zip and installs fine as-is.

🤖 Generated with Claude Code

Fixes the **"No valid plugins were found"** error when installing the plugin downloaded from a Gitea Actions artifact. ## Cause Gitea/Actions **re-zips artifacts on download**. The `build` job uploaded the already-built `dist/unsupervised-schedular-<version>.zip`, so the downloaded archive was a **zip containing a zip**. WordPress unzips the upload, finds a `.zip` (no plugin folder/header at the top level), and rejects it. ## Fix Unpack the built zip in CI and upload the resulting **plugin folder** instead. The downloaded artifact archive's top level is then `unsupervised-schedular/`, which installs directly via **Plugins → Add New → Upload Plugin**. Verified by simulating the exact CI steps locally — the re-zipped artifact's top-level entry is `unsupervised-schedular/` with `unsupervised-schedular.php` inside. ## Note This affects the CI artifact only. The local `composer build` output in `dist/` was always a correct single plugin zip and installs fine as-is. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
thatguygriff added 1 commit 2026-06-05 15:31:52 +00:00
Fix CI artifact so the downloaded plugin installs directly
CI / Coding Standards (pull_request) Successful in 52s
CI / PHPStan (pull_request) Successful in 58s
CI / Tests (PHP 8.1) (pull_request) Successful in 51s
CI / Tests (PHP 8.2) (pull_request) Successful in 49s
CI / Tests (PHP 8.3) (pull_request) Successful in 49s
CI / No Debug Code (pull_request) Successful in 2s
CI / Build Plugin Zip (pull_request) Has been skipped
2011319750
Gitea/Actions re-zips artifacts on download, so uploading the built plugin
zip produced a double-wrapped archive (a zip containing a zip). WordPress
then reported "No valid plugins were found" because the upload had no
plugin folder/header at its top level.

Unpack the built zip and upload the resulting plugin folder instead, so the
downloaded artifact's top level is unsupervised-schedular/ and installs
directly via Plugins -> Add New -> Upload.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
thatguygriff merged commit 74fb27ea05 into main 2026-06-05 15:36:41 +00:00
thatguygriff deleted branch fix/ci-artifact-double-zip 2026-06-05 15:36:41 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Unsupervised/unsupervised-scheduler#14