> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Continuous Deployment

> Run a Paradime Bolt schedule on merge to deploy dbt™ changes to production, using the native GitHub app or Azure, GitLab, or BitBucket pipelines.

Continuous Deployment (CD) runs a Bolt schedule as soon as changes are merged, so your production environment always reflects the latest approved changes. The schedule can run any commands (dbt™, Python scripts, or app triggers), not only dbt models. Bolt integrates with your version control and CI/CD platforms to run the deployment.

## Deployment options

<CardGroup cols={2}>
  <Card title="GitHub Native" href="/products/bolt/ci-cd/continuous-deployment/github" horizontal>
    Deploy on merge with Bolt's native GitHub integration, no pipeline required.
  </Card>

  <Card title="Azure Pipelines" href="/products/bolt/ci-cd/continuous-deployment/azure-devops" horizontal>
    Trigger a Bolt schedule from an Azure Pipeline on merge.
  </Card>

  <Card title="GitLab Pipelines" href="/products/bolt/ci-cd/continuous-deployment/gitlab" horizontal>
    Trigger a Bolt schedule from a GitLab pipeline on merge.
  </Card>

  <Card title="BitBucket Pipelines" href="/products/bolt/ci-cd/continuous-deployment/bitbucket" horizontal>
    Trigger a Bolt schedule from a BitBucket pipeline on merge.
  </Card>
</CardGroup>

## Set up the CD Bolt schedule

For pipeline-based CD (Azure, GitLab, or BitBucket), first create the Bolt schedule your pipeline will trigger. GitHub-native CD does not need this, see [GitHub Native](/products/bolt/ci-cd/continuous-deployment/github).

<Info>
  Requires a production environment configured in Paradime. See the [Scheduler Environment setup guide](/products/settings/connections/scheduler-environment/index) for your data warehouse.
</Info>

1. In the Bolt UI, create a new schedule or edit an existing one.

2. Turn on **Defer to a previous run** so the job builds only what changed, comparing against a previous run's state.

3. Give the schedule a descriptive **name**.

4. Choose the **schedule to defer to** (the same schedule or another).

5. Set the **comparison method** (`Last run` or `Last successful run`).

6. Enter the **dbt™ commands** to run, for example:

   ```bash theme={"system"}
   dbt run --select state:modified
   ```

7. Choose the **Git branch** to deploy from (for example, `main`).

8. Set the **trigger** to **On Merge**, so the schedule deploys when changes are merged.

9. **Deploy** the schedule, and note its **slug** for the pipeline.

<Info>
  Start from the [Deploy Code Changes on Merge](/products/bolt/creating-schedules/templates/ci-cd-templates/deploy-code-changes-on-merge) template.
</Info>


## Related topics

- [Continuous Deployment](/products/bolt/ci-cd/continuous-deployment/index.md)
- [Bolt CI/CD for dbt™ pull requests and deploys](/products/bolt/ci-cd/index.md)
- [Continuous Deployment with Azure Pipelines](/products/bolt/ci-cd/continuous-deployment/azure-devops.md)
- [Continuous Deployment with GitHub for dbt™](/products/bolt/ci-cd/continuous-deployment/github.md)
- [Continuous Deployment with BitBucket Pipelines](/products/bolt/ci-cd/continuous-deployment/bitbucket.md)
