Skip to content

Build pipeline for multiple PHP versions and targets #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
adamziel opened this issue Sep 22, 2022 · 1 comment
Closed

Build pipeline for multiple PHP versions and targets #7

adamziel opened this issue Sep 22, 2022 · 1 comment

Comments

@adamziel
Copy link
Collaborator

What problem is this issue looking to solve?

A pipeline that builds all the listed PHP versions would pave the way to one-click switching of the PHP version:

switch php versions

How does this issue proposes to solve it?

The technical foundation was shipped in 45ba8ce. Since that commit, the docker build process can be build a specific PHP version as follows:

docker build . --no-cache --tag=wasm-wordpress-php-builder --build-arg PHP_VERSION="8.0.29" --build-arg VRZNO_FLAG="--disable-vrzno"

I confirmed it works with 7.0.0, 7.0.24 and even 8.0.29 when vrzno is disabled. It may break for versions that are not compatible with the PHP patches shipped in this repo.

@adamziel
Copy link
Collaborator Author

adamziel commented Feb 2, 2023

Multiple PHP versions are now supported via npm run build:PHP:web:<VERSION> and npm run build:PHP:node:<VERSION>. See #94.

@adamziel adamziel closed this as completed Feb 2, 2023
brandonpayton pushed a commit that referenced this issue Feb 25, 2025
## Motivation for the change, related issues
Files in a zip file should only have relative urls as per spec. Right
now, when exporting the backup for the site, we create a zip file with a
leading slash in the files inside it.

This got surfaced in Studio app when we switched to a diff zip library
that strictly adheres to zip spec and PG exported zip files fail to
process.

Related to: Automattic/dotcom-forge#10369

Note: There are other places where `ZipArchive` is used but this PR only
modifies the location that impacts the site export.
<img width="531" alt="Screenshot 2025-01-30 at 11 44 32"
src="https://github.com/user-attachments/assets/561896ee-0fe9-40c1-b413-d226c68fc0be"
/>
Probably other places can use the same change, and I can follow that up
in a separate PR, if you like.

## Testing Instructions (or ideally a Blueprint)
Export zip of a site and examine the file paths inside it using the
following script:

```php
<?php
$zip = new ZipArchive();
$zip->open('/Users/ashfame/Downloads/wordpress-playground-16.zip');
echo "=== ZIP Contents ===".PHP_EOL;
for($i = 0; $i < $zip->numFiles; $i++) {
	echo $zip->getNameIndex($i) . PHP_EOL;
}
echo "=== End ZIP Contents ===".PHP_EOL;
$zip->close();
```

Prior to this PR, you would see file paths like:
```
/wp-content/themes/twentytwentyfive/patterns/more-posts.php
```
and with this PR you will see file paths without the leading slash:
```
wp-content/themes/twentytwentyfive/patterns/more-posts.php
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant