Skip to main content

astro deploy


The behavior and format of this command differs depending on what Astronomer product you're using. Use the following tabs to change between product contexts.

Deploy code to a Deployment on Astro.

This command bundles all files in your Astro project and pushes them to Astro. Before completing the process, it tests your DAGs in your Astro project for errors. If this test fails, the deploy to Astro will also fail. This is the same test which runs locally with astro dev parse.

When you run astro deploy, you'll be prompted to select from a list of all Deployments that you can access across Workspaces. To bypass this prompt, you can also specify a Deployment ID in the command. To retrieve a Deployment ID, open your Deployment in the Cloud UI and copy the value in the ID section of the Deployment page. You can also run astro deployment list to find a Deployment ID or name.

For teams operating at scale, this command can be automated with a CI/CD pipeline by using Deployment API keys in the request. When ASTRONOMER_KEY_ID and ASTRONOMER_KEY_SECRET are specified as OS-level environment variables on your local machine or in a CI tool, astro deploy <deployment-id> can be run without requiring user authentication.


To skip the parsing process before deploys, complete one of the following setups:

  • Add skip_parse: true to .astro/config.yaml in your Astro project.
  • Add ASTRONOMER_SKIP_PARSE=true as an environment variable to your local environment or CI/CD pipeline.


astro deploy <options>


OptionDescriptionPossible Values
<deployment-id>Specifies the Deployment to deploy to and bypasses the Deployment selection promptAny valid Deployment ID
--dagsDeploy only your dags directory. See DAG-only deploysNone
-e,--envLocation of the file containing environment variables for pytests. By default, this is .env.Any valid filepath to an .env file
-f,--forceForce deploy even if your project contains errors or uncommitted changesNone
-p,--promptForce the Deployment selection prompt even if a Deployment ID is specifiedNone
--pytestDeploy code to Astro only if the specified pytests are passedNone
-s,--saveSave the current Deployment and working directory combination for future deploysNone
-t,--testThe filepath to an alternative pytest file or directoryValid filepath within your Astro project
--workspace-id <string>In the prompt to select a Deployment, only show Deployments within this WorkspaceAny valid Workspace ID
-i, --image-nameThe name of a pre-built custom Docker image to use with your project. The image must be available from a Docker registry hosted on your local machineA valid name for a pre-built Docker image based on Astro Runtime


# List of Deployments appears
$ astro deploy

# Deploy directly to a specific Deployment
$ astro deploy ckvvfp9tf509941drl4vela81n

# The CLI automatically selects this Deployment for your Astro project
$ astro deploy ckvvfp9tf509941drl4vela81n --save

# The CLI looks for a Docker image with a matching name in your local Docker registry and builds your project with it
$ astro deploy --image-name my-custom-runtime-image

# Deploy only DAGs to a specific Deployment
$ astro deploy ckvvfp9tf509941drl4vela81n --dags