php-release
php-release copied to clipboard
Docker container for preparing PHP Releases
PHP Release Builder
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
Features
- Repeatable, system independent builds
- Configuration file for unattended builds
- Ability to rebuild using release branch
Running the Container
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.
Debian Jessie
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