continuousphp projects are configured using Deployment Pipelines. You can create or more pipelines per project.
A build on continuousphp always follows a particular scheme. At the beginning of the build, 2 packages are created (unless you have no tests) : a testing package, that will be handed over to the testing activities a deployment package, that will be deployed if all your (blocking) tests are successful
When the testing package is finished, the tests will start, whether or not the deployment package is ready. In turn, when the deployment package is ready, but not the (blocking) tests, the Deployment will wait for the results to see if the build can be deployed.
The tests and deployments are automatically parallelized on all chosen PHP versions and destinations.
Take a look at the following illustration to get a clearer view :
Create a new Deployment Pipeline¶
To create a new Pipeline, click the "+" button on the project page and search for the git reference you want to be built by the new Pipeline:
continuousphp supports wildcard pipelines. This means that all git references matching the pipeline's descriptor can be built by this pipeline. A few examples:
|refs/heads/*||Build all branches|
|refs/tags/*||Build all tags|
|refs/heads/feature/*||Build all branches starting with "feature/"|
|refs/heads/hotfix-*||Build all branches starting with "hotfix-"|
A Deployment Pipeline on continuousphp consists of multiple steps :
- Build Settings: Configure PHP versions, Composer, Webserver Document Root, Authentication (AWS, SSH, HTTP) and other settings needed to create the testing package.
- Testing Settings: Configure the tests you want to run during the Build. You can choose multiple testing frameworks like PHPUnit, Behat, Codeception, ... and also tools for static code analysis like PHPCS.
- Package Settings: Select the type of Package and Deployment you want to use, e.g. a generic Script deployment, AWS CodeDeploy, etc.
- Deployment & Notification Settings: Configure the Deployment solution you've chosen in the previous step and add Notifications. You can specify one or more deployment destinations and choose between multiple Notification adapters like Slack, HipChat, etc.