2016-06-16 20:37:49 -04:00
|
|
|
# Introduction to environments and deployments
|
|
|
|
|
|
|
|
>**Note:**
|
|
|
|
Introduced in GitLab 8.9.
|
|
|
|
|
|
|
|
## Environments
|
|
|
|
|
|
|
|
Environments are places where code gets deployed, such as staging or production.
|
|
|
|
CI/CD [Pipelines] usually have one or more [jobs] that deploy to an environment.
|
|
|
|
Defining environments in a project's `.gitlab-ci.yml` lets developers track
|
|
|
|
[deployments] to these environments.
|
|
|
|
|
|
|
|
## Deployments
|
|
|
|
|
|
|
|
Deployments are created when [jobs] deploy versions of code to [environments].
|
|
|
|
|
2016-09-30 09:45:27 -04:00
|
|
|
### Checkout deployments locally
|
|
|
|
|
|
|
|
Since 8.13, a reference in the git repository is saved for each deployment. So
|
|
|
|
knowing what the state is of your current environments is only a `git fetch`
|
|
|
|
away.
|
|
|
|
|
2016-10-03 09:39:12 -04:00
|
|
|
In your git config, append the `[remote "<your-remote>"]` block with an extra
|
2016-09-30 09:45:27 -04:00
|
|
|
fetch line:
|
|
|
|
|
|
|
|
```
|
|
|
|
fetch = +refs/environments/*:refs/remotes/origin/environments/*
|
|
|
|
```
|
|
|
|
|
2016-06-16 20:37:49 -04:00
|
|
|
## Defining environments
|
|
|
|
|
|
|
|
You can create and delete environments manually in the web interface, but we
|
|
|
|
recommend that you define your environments in `.gitlab-ci.yml` first, which
|
|
|
|
will automatically create environments for you after the first deploy.
|
|
|
|
|
|
|
|
The `environment` is just a hint for GitLab that this job actually deploys to
|
|
|
|
this environment. Each time the job succeeds, a deployment is recorded,
|
|
|
|
remembering the git SHA and environment.
|
|
|
|
|
|
|
|
Add something like this to your `.gitlab-ci.yml`:
|
|
|
|
```
|
|
|
|
production:
|
|
|
|
stage: deploy
|
|
|
|
script: dpl...
|
|
|
|
environment: production
|
|
|
|
```
|
|
|
|
|
|
|
|
See full [documentation](yaml/README.md#environment).
|
|
|
|
|
|
|
|
## Seeing environment status
|
|
|
|
|
|
|
|
You can find the environment list under **Pipelines > Environments** for your
|
|
|
|
project. You'll see the git SHA and date of the last deployment to each
|
|
|
|
environment defined.
|
|
|
|
|
|
|
|
>**Note:**
|
|
|
|
Only deploys that happen after your `.gitlab-ci.yml` is properly configured will
|
|
|
|
show up in the environments and deployments lists.
|
|
|
|
|
|
|
|
## Seeing deployment history
|
|
|
|
|
|
|
|
Clicking on an environment will show the history of deployments.
|
|
|
|
|
|
|
|
>**Note:**
|
|
|
|
Only deploys that happen after your `.gitlab-ci.yml` is properly configured will
|
|
|
|
show up in the environments and deployments lists.
|
|
|
|
|
2016-06-20 18:07:38 -04:00
|
|
|
[Pipelines]: pipelines.md
|
2016-06-16 20:37:49 -04:00
|
|
|
[jobs]: yaml/README.md#jobs
|
|
|
|
[environments]: #environments
|
|
|
|
[deployments]: #deployments
|