This is an attempt to standardize and automate most of the build process for PHP releases. It is based heavily on dshafik/php-build.
This container is currently based on ubuntu:xenial
.
It will do the following:
- Clone PHP from the github
- Create the release branch from the correct branch
- Update the version number/date/credits in various files
- Build PHP for nts, debug-nts, zts, and debug-zts and run tests in each version
- Compare the build
-v
version against the intended version - Create the packages
- Provide instructions for finalizing the release
- Repeatable, system independent builds
- Configuration file for unattended builds
- Ability to rebuild using release branch
You need to create a workspace
directory to mount into the container.
This is where the build script will place artifacts.
This directory must contain a config
file (see config.default
for settings).
The build process will create/overwrite the following folders and files within /workspace
:
php-src/
: The checkout from php-src. This checkout is performed fresh with every invocation of php-release.log/{config,make,test}.{debug-,}{nts,zts}
: Results of ./configure, make, and make test across debug/non-debug zts/nts
For example, assuming you created your workspace in your home directory, you could run the following:
docker run --rm -v/home/$USER/workspace:/workspace sgolemon/php-release
or
podman run --rm -v/home/$USER/workspace:/workspace sgolemon/php-release
This will pull the image from hub.docker.com and run it,
mounting your local ~/workspace
directory as /workspace
within the container.
For the earlier, debian:jessie version of this image, use:
docker run --rm -v/home/$USER/workspace:/workspace sgolemon/php-release:jessie
or
podman run --rm -v/home/$USER/workspace:/workspace sgolemon/php-release:jessie