# aspire deploy command

## Name

`aspire deploy` - Deploy a codebase orchestrated with Aspire to specified targets.

## Synopsis

```bash title="Aspire CLI"
aspire deploy [options] [[--] <additional arguments>...]
```

## Description

The `aspire deploy` command invokes the `deploy` pipeline step and any dependent steps (such as the `publish` step) registered in the app model.

<Include relativePath="reference/cli/includes/project-search-logic-description.md" />

The command performs the following steps to deploy an app orchestrated with Aspire:

- Creates or updates the rooted `aspire.config.json` file and records the
  selected AppHost there. Legacy `.aspire/settings.json` files are still read
  during migration.
- Installs or verifies that Aspire's local hosting certificates are installed and trusted.
- Builds the AppHost project and its resources.
- Starts the AppHost and its resources.
- Executes the `deploy` pipeline step, and any dependent steps, registered in the app model.

## Pipeline summary output

After the pipeline finishes, `aspire deploy` prints a result summary and a step-by-step breakdown. The summary shows how many steps succeeded, the total pipeline duration, and a `Steps Summary:` table.

The `Steps Summary:` table lists pipeline steps in their execution hierarchy. Top-level steps appear at the left edge of the step-name column, and child steps are indented under their parent steps. Each row includes the step duration, final status, step name, and, when the terminal is wide enough, a timeline bar that shows when the step started and finished relative to the whole pipeline.

```text title="Output"
------------------------------------------------------------
✅ 5/5 steps succeeded • Total time: 0.43s

Steps Summary:
                Step timeline:                 0s                       0.41s
                                               │───────┬──────┬─────┬───────│
0.73ms  ✓ validate-compute-environments  │╴                           │
0.21ms  ✓   before-start                 │╴                           │
0.41s  ✓ pipeline-execution             │╶──────────────────────────╴│
0.41s  ✓ custom-deploy-prereq           │╶──────────────────────────╴│
0.33ms  ✓   deploy                       │                           ╴│

✅ Pipeline succeeded
------------------------------------------------------------
```

The `Step timeline:` header shows the start and end of the overall pipeline duration. The ruler divides that duration into equal intervals, and each step row uses a bar to show the step's relative start and end times. Very short steps can appear as a single point marker (`╴`). If the terminal isn't wide enough to preserve readable step names, Aspire omits the timeline columns and keeps the hierarchical step list.

## Options

The following options are available:

- **`--`**

  Delimits arguments to `aspire deploy` from arguments for the AppHost. All arguments after this delimiter are passed to the AppHost.

- <Include relativePath="reference/cli/includes/option-project.md" />

- **`-o, --output-path`**

  The optional output path for deployment artifacts. Defaults to the `aspire-output` folder relative to the apphost.

- **`--pipeline-log-level`**

  Set the minimum log level for pipeline logging. Valid values are: `trace`, `debug`, `information`, `warning`, `error`, `critical`. The default is `information`.

- **`-e, --environment`**

  The environment to use for the operation. The default is `Production`.

- **`--include-exception-details`**

  Include exception details (stack traces) in pipeline logs.

- **`--clear-cache`**

  Clear the deployment cache associated with the current environment and do not save deployment state.

- <Include relativePath="reference/cli/includes/option-list-steps.md" />

- <Include relativePath="reference/cli/includes/option-no-build.md" />

- <Include relativePath="reference/cli/includes/option-help.md" />

- <Include relativePath="reference/cli/includes/option-log-level.md" />

- <Include relativePath="reference/cli/includes/option-non-interactive.md" />

- <Include relativePath="reference/cli/includes/option-nologo.md" />

- <Include relativePath="reference/cli/includes/option-banner.md" />

- <Include relativePath="reference/cli/includes/option-wait.md" />

## Examples

- Search the current directory structure for AppHost projects to build, publish, and deploy:

  ```bash title="Aspire CLI"
  aspire deploy
  ```

- Publish and deploy an Aspire AppHost and its dependencies:

  ```bash title="Aspire CLI"
  aspire deploy --apphost './projects/apphost/orchestration.AppHost.csproj'
  ```

- Publish and deploy an Aspire AppHost with arguments:

  ```bash title="Aspire CLI"
  aspire deploy --apphost './projects/apphost/orchestration.AppHost.csproj' -- -fast
  ```