Continuous Deployment

🚧

Currently, we support Continuous Deployment only for GitHub, GitLab and Bitbucket repositories.

Continuous Deployment in env0

env0 allows you to configure an environment to automatically re-deploy your environment with your updated terraform code on every push to a git branch. If a deployment is already in progress when a git push occurs, a deployment will be queued, and the environment will deploy again when the current deployment is finished.

📘

Connect Your Template To Your VCS

Before creating or configuring an environment to continuously deploy, make sure that you have a template integrated with GitHub, GitLab or Bitbucket.

New Environment

To create an environment, choose a specific Project, select the Project Templates tab, and then click Run Now on the template you want to use. On the Run Environment screen, pick the branch you would like to continuously deploy, and tick the Redeploy on every push to the git branch checkbox. Then, fill out the rest of the configuration for the deployment. When you're done, click Run.The environment will now deploy and will redeploy again on every push to the git branch

New Environment Deploy DialogNew Environment Deploy Dialog

New Environment Deploy Dialog

Existing Environment

Choose your Project, select the Project Environments tab, and then click on the environment you would like to configure for continuous deployment. Go to the Triggers tab, tick the Redeploy on every push to the git branch checkbox.

You can choose to run by the following options:

  • Any change - your environment will redeploy on every push
  • Changes on Template Directory files - your environment will redeploy on every push which the push contains file changes under Terraform Folder
  • Changes by file filter pattern - your environment will redeploy on every push which the push contains file changes by match to the pattern. see below how to configure glob pattern.
Edit Existing Environment SettingsEdit Existing Environment Settings

Edit Existing Environment Settings

📘

Glob pattern

Glob patterns specify sets of filenames with wildcard characters. For example, *.txt my_folder/**

It means you can configure pattern by git repository which re-deploy environment only if the push contains files that change by free pattern.

For example, you can configure pattern like src/project_1/**
In this case, we will re-deploy only if the push contains file which starts with src/project_1/...

We also support extglob glob with that you can write pattern which ignores files or use a list of folders


Did this page help you?