This repository contains an example project for a continuous integration setup for TYPO3 projects.
This projects demonstrates how you can use virtualization technologies to implement multi-configuration builds for TYPO3 (or any other kind of web projects). In this example, you can build a TYPO3 project with arbitrary combinations of TYPO3 and PHP versions, allowing you to find version-specific bugs in your project quickly and without pain.
In order to use this example, you need the following software:
- Vagrant for managing virtual machines to build your project in
- VirtualBox as virtualization backend
- Ansible for configuration of build VMs
- Composer for PHP dependency management
Start the build process manually:
composer install
TYPO3_VERSION=master PHP_VERSION=5.5 vagrant up --provision
vagrant ssh -c 'cd /vagrant && bin/phing'
vagrant suspend
Create a new Jenkins multi-configuration build and create two build axes labeled TYPO3_VERSION
and PHP_VERSION
.
For the TYPO3_VERSION
variable, you can use any valid reference from the
TYPO3 git repository (i.e. branch and tag names, like master
,
TYPO3_6-2
or TYPO3_6-1-5
).
Then create an execute shell script build step with the following shell commands:
composer install
vagrant up --provision
vagrant ssh -c 'cd /vagrant && bin/phing'
vagrant suspend
To collect code metrics, generated for example by Typoscript Lint, you can use the Violations plugin for Jenkins.