> ## 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.

# Set up continuous deployment

> Automatically deploy your dbt™ changes to production the moment a pull request merges, using a Paradime Bolt schedule triggered on the default branch.

Continuous Deployment (CD) runs a Bolt schedule as soon as changes are merged, so your production environment always reflects the latest approved work. In this guide you'll create a CD schedule that deploys on merge, then hand off to the setup page for your git provider.

<Note>
  **Prerequisites**

  * A [production environment](/products/settings/connections/scheduler-environment/index) configured in Paradime.
  * A connected [git repository](/products/bolt/ci-cd/index) with permission to merge to your production branch.
  * Familiarity with [Bolt schedule types and triggers](/guides/paradime-101/running-dbt-in-production-with-bolt/understanding-schedule-types-and-triggers).

  Estimated time: 15 minutes.
</Note>

## Steps

<Steps>
  <Step title="Create or edit a Bolt schedule">
    In the Bolt UI, create a new schedule or open an existing one to edit. This schedule is what deploys your changes to production on merge.
  </Step>

  <Step title="Turn on Defer to a previous run">
    Enable **Defer to a previous run** so the job builds only what changed, comparing against a previous run's state. This keeps each deployment fast and incremental.
  </Step>

  <Step title="Name the schedule and choose what to defer to">
    Give the schedule a descriptive **name** so it's easy to identify.

    Choose the **schedule to defer to** (the same schedule or another), then set the **comparison method** to either `Last run` or `Last successful run`.

    <Info>
      Deferring to the schedule's own last successful run gives you efficient incremental builds.
    </Info>
  </Step>

  <Step title="Enter the dbt™ commands to run">
    Enter the commands the deployment should run. To build only changed models and their dependents, select modified state:

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

    A schedule can run any commands (dbt™, Python scripts, or app triggers), not only dbt models.
  </Step>

  <Step title="Set the branch and the On Merge trigger">
    Choose the **git branch** to deploy from, for example `main`. Then set the **trigger** to **On Merge**, so the schedule runs whenever a pull request is merged into that branch.
  </Step>

  <Step title="Deploy the schedule">
    **Deploy** the schedule to save and activate it. Note its **slug**, which you'll need if your git provider triggers Bolt through a pipeline.
  </Step>
</Steps>

<Check>
  Open a test pull request with a small model change and merge it. You'll know it worked when the CD schedule kicks off automatically and the modified models rebuild in production. If nothing runs, revisit the branch and the **On Merge** trigger in step 5, and confirm your git provider is connected.
</Check>

## Set up your git provider

Finish the connection on the reference page for your provider. GitHub uses a native app with no pipeline required, while the others trigger the schedule from a pipeline using its slug.

<CardGroup cols={2}>
  <Card title="GitHub" href="/products/bolt/ci-cd/continuous-deployment/github" horizontal />

  <Card title="GitLab" href="/products/bolt/ci-cd/continuous-deployment/gitlab" horizontal />

  <Card title="Azure DevOps" href="/products/bolt/ci-cd/continuous-deployment/azure-devops" horizontal />

  <Card title="BitBucket" href="/products/bolt/ci-cd/continuous-deployment/bitbucket" horizontal />
</CardGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Set up Turbo CI" href="/guides/orchestrate-data-pipelines/set-up-turbo-ci" icon="git-branch">
    Test changes on every pull request before they merge.
  </Card>

  <Card title="Continuous Deployment reference" href="/products/bolt/ci-cd/continuous-deployment/index" icon="rocket">
    Every deployment option and the CD schedule settings.
  </Card>
</CardGroup>


## Related topics

- [Continuous Deployment with GitHub for dbt™](/products/bolt/ci-cd/continuous-deployment/github.md)
- [Continuous Deployment](/products/bolt/ci-cd/continuous-deployment/index.md)
- [Continuous Deployment with Azure Pipelines](/products/bolt/ci-cd/continuous-deployment/azure-devops.md)
- [Continuous Deployment with BitBucket Pipelines](/products/bolt/ci-cd/continuous-deployment/bitbucket.md)
- [Continuous Deployment with GitLab Pipelines](/products/bolt/ci-cd/continuous-deployment/gitlab.md)
