# Deploying a project
# Starting the deployment process
To begin a new deployment to a project environment, you use the
$ ymir deploy
$ ymir deploy environment-name
By default, the
deploy command will deploy your project to the
staging environment. If you want to deploy it to another environment, you need to specify it as an argument as shown above.
# Build process
Deploying a project to an environment starts with the build process. This is where Ymir CLI creates a build artifact for AWS Lambda and also separates your project assets to upload them to S3 if needed. The whole process happens in the
.ymir temporary directory where the Ymir CLI will create a copy of your project. You can also test the build process using the
Ymir also lets you add your own build steps to the process. You do that by adding them to the
build option of your project's
ymir.yml configuration file. Below is an example where the Ymir CLI would run
yarn build during the build process.
- 'yarn build'
Build runs locally
The build process runs on the machine that executed the
build command. All the required tools to preform your build steps must be available for the build to work.
# Redeploying a project
You can redeploy your project to an environment using the
redeploy command. This will deploy the environment's last successful deployment. This is useful when you've made changes to environment variables or secrets.
$ ymir redeploy
$ ymir redeploy environment-name
# Rolling back a deployment
It's also possible to rollback your project environment to a previous a deployment. You do this using the
$ ymir rollback
$ ymir rollback environment-name
Environment variables and secrets
Rolling back an environment also rolls back its environment variables and secrets.
If you want to select the deployment to rollback to, you want to use the
--select option with the
rollback command. If you don't use the
--select option, the
rollback command will rollback the environment to the last successful deployment.
$ ymir rollback --select
$ ymir rollback environment-name --select