# Continuous Delivery

Creating a delivery automation pipeline in Buddy is simple and effortless. Here's an example of a Continuous Delivery pipeline setup in Buddy.

Continuous Delivery is a deployment automation practice in which every single change to code is made on the main branch in the repository \(usually 'master'\) and immediately built, tested and deployed. Whereas both the tests and the deployments are fully automated, the release to the production server requires an additional **manual confirmation**.

<Hint type="warning">

Introducing Continuous Delivery to your project requires the application to be thoroughly covered with tests and a properly trained team with established work culture.

</Hint>

## Continuous Delivery pipeline

<Hint type="info">

The basics of Continuous Delivery are essentially the same as of Continuous Deployment and thanks to Buddy, creating a delivery automation pipeline is easier than ever. The best idea is that you start with [building a deployment pipeline described here](/docs/pipelines/pipeline-examples/continuous-deployment-pipeline.md).

</Hint>

To turn a Continuous Deployment pipeline into a Continuous Delivery pipeline, it should stop immediately after the automatic build and tests and wait for a manual release confirmation:

![Continuous delivery process](/docs/pipeline-examples/continuous-delivery-pipeline/continuous-delivery-pipeline-1.png 640x172)

To achieve that in Buddy, you should use the <u>Approve Run</u> action:

![Approve Run action location](/docs/pipeline-examples/continuous-delivery-pipeline/continuous-delivery-pipeline-2.png 640x256)

The action lets you define who can confirm the latest version. You can restrict the permission to a specific team member or a group:

![Action configuration](/docs/pipeline-examples/continuous-delivery-pipeline/continuous-delivery-pipeline-3.png 640x456)

<Hint type="success">

Make sure to add a **notification action** that will inform authorized team members about a new version waiting to be released. It should be placed just before the approval action in the pipeline.

</Hint>

Buddy offers a wide variety of notifications. You can use a dedicated Slack, Discord or Telegram integration, or send messages via email or SMS:

![Buddy notification actions](/docs/pipeline-examples/continuous-delivery-pipeline/continuous-delivery-pipeline-4.png 640x256)

A properly configured Continuous Delivery pipeline should look like this:

![Buddy pipeline example](/docs/pipeline-examples/continuous-delivery-pipeline/continuous-delivery-pipeline-5.png 640x671)

A pipeline prepared this way will be run automatically after each push to the main branch. It will also test the application and prepare it for the release. After that, it needs to be confirmed manually.


---
Original source: https://buddy.works/docs/pipelines/pipeline-examples/continuous-delivery-pipeline