Continuous integration with CircleCI

 

This solution includes a pipeline configuration to setup a Continuous Integration pipeline on CircleCI.

The jobs provided are the following:

  • build docker images
  • run tests
  • automatically deploy to staging
  • automatically deploy to QA env in case of feature branches
  • manual approval for production deployment

Here the resulting CI pipeline for the master branch:

Builds on master

It is visible that there is a "build" job, a "tests" job and a "deploy to staging" job. There is also a "deploy to production" job, if approved, will deploy the application to production.

Here the resulting CI pipeline for a feature branch:

Builds on feature branches

It is visible that there is a "build" job, a "tests" job and a "deploy to QA" job if approved, will deploy the application to a review environment. Thee is also a "delete QA" job that allows to remove a not needed anymore QA environment.

Preview

Here a preview of the directory structure:

.
├── app
│   └── index.php
├── composer.json
├── composer.lock
├── docker-compose.yml
├── dockerfiles
│   └── app
│       └── Dockerfile
├── k8s
│   └── app.yml
├── vendor
└── README.md

ci, circle-ci, continuous-integration, devops

Want more info?