WordPress / wordpress-playground

Run WordPress in the browser via WebAssembly PHP
https://w.org/playground/
GNU General Public License v2.0
1.62k stars 249 forks source link

Expired GH artifact makes install via plugin-proxy.php seem broken #1359

Open brandonpayton opened 5 months ago

brandonpayton commented 5 months ago

Blueprint links like the following that use plugin proxy are not working: https://playground.wordpress.net/#%7B%22landingPage%22:%22/wp-admin/admin.php?page=wc-admin%22,%22preferredVersions%22:%7B%22php%22:%228.0%22,%22wp%22:%22latest%22%7D,%22phpExtensionBundles%22:%5B%22kitchen-sink%22%5D,%22features%22:%7B%22networking%22:true%7D,%22steps%22:%5B%7B%22step%22:%22installPlugin%22,%22pluginZipFile%22:%7B%22resource%22:%22url%22,%22url%22:%22https://playground.wordpress.net/plugin-proxy.php?org=woocommerce&repo=woocommerce&workflow=Build%20Live%20Branch&artifact=plugins-8797272447&pr=46761%22%7D,%22options%22:%7B%22activate%22:true%7D%7D,%7B%22step%22:%22login%22,%22username%22:%22admin%22,%22password%22:%22password%22%7D%5D,%22plugins%22:%5B%5D%7D (from #1332)

The plugin proxy URL is: https://playground.wordpress.net/plugin-proxy.php?org=woocommerce&repo=woocommerce&workflow=Build%20Live%20Branch&artifact=plugins-8797272447&pr=46761

And the error message for that request is:

{
    "error": "Request failed"
}

~Perhaps a GitHub token expired, something changed in the API, artifacts expire, or something else.~ Update: The artifact was expired.

brandonpayton commented 5 months ago

This is blocking memory out-of-bounds repro for #1332 and likely affects others. I am looking into it.

brandonpayton commented 5 months ago

It turns out that the artifact in the example case has expired. The CI job is re-running to hopefully create a new, unexpired artifact.

Artifact expiry is likely what I have seen when trying to test plugin-proxy.php with other old pull requests. It would be good for us to detect this and reflect it in the UI rather than failing a blueprint step and ending up in a strange limbo state.

brandonpayton commented 5 months ago

The biggest aspect of this issue has been addressed by @bgrgicak in #1336. Now there is at least a message showing that the download failed: Screenshot 2024-05-08 at 11 33 34 AM

But plugin-proxy.php could communicate the actual issue better if only in a way we can observe via the Network tab of dev tools. Screenshot 2024-05-08 at 11 38 15 AM

Currently, it responds with "400 Bad request" when GitHub is responding with "410 Gone" which is more helpful than 400. Let's update plugin-proxy.php to communicate that info and update Playground to relay it in the error message.