Commit 5a9f1e24 authored by Achilleas Pipinellis's avatar Achilleas Pipinellis Committed by Robert Speicher

Merge branch 'document-environments' into 'master'

Document environments and deployments

## What does this MR do?

Adds an introduction to environments and deployments and tweaks the `environments` entry in `.gitlab-ci.yml` documentation.

## Are there points in the code the reviewer needs to double check?

## Why was this MR needed?

## What are the relevant issue numbers?

Closes #18683.

## Screenshots (if relevant)

![image](/uploads/1e3355c543abaf7b358f3c37596b1f0b/image.png)

![image](/uploads/58a51505674bcf605039db46833a8ae6/image.png)

/cc @ayufan @axil 

See merge request !4725
parent f3f943cf
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
- [Get started with GitLab CI](quick_start/README.md) - [Get started with GitLab CI](quick_start/README.md)
- [CI examples for various languages](examples/README.md) - [CI examples for various languages](examples/README.md)
- [Learn how to enable or disable GitLab CI](enable_or_disable_ci.md) - [Learn how to enable or disable GitLab CI](enable_or_disable_ci.md)
- [Environments and deployments](environments.md)
- [Learn how `.gitlab-ci.yml` works](yaml/README.md) - [Learn how `.gitlab-ci.yml` works](yaml/README.md)
- [Configure a Runner, the application that runs your builds](runners/README.md) - [Configure a Runner, the application that runs your builds](runners/README.md)
- [Use Docker images with GitLab Runner](docker/using_docker_images.md) - [Use Docker images with GitLab Runner](docker/using_docker_images.md)
......
# 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].
## 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.
[Pipelines]: quick_start/README.md
[jobs]: yaml/README.md#jobs
[environments]: #environments
[deployments]: #deployments
...@@ -530,14 +530,18 @@ The above script will: ...@@ -530,14 +530,18 @@ The above script will:
### environment ### environment
>**Note:** >**Note:**
Introduced in GitLab v8.9.0. Introduced in GitLab 8.9.
`environment` is used to define that job does deployment to specific environment. `environment` is used to define that a job deploys to a specific environment.
This allows to easily track all deployments to your environments straight from GitLab. This allows easy tracking of all deployments to your environments straight from
GitLab.
If `environment` is specified and no environment under that name does exist a new one will be created automatically. If `environment` is specified and no environment under that name exists, a new
one will be created automatically.
The `environment` name must contain only letters, digits, '-' and '_'. The `environment` name must contain only letters, digits, '-' and '_'. Common
names are `qa`, `staging`, and `production`, but you can use whatever name works
with your workflow.
--- ---
...@@ -550,7 +554,8 @@ deploy to production: ...@@ -550,7 +554,8 @@ deploy to production:
environment: production environment: production
``` ```
The `deploy to production` job will be marked as doing deployment to `production` environment. The `deploy to production` job will be marked as doing deployment to
`production` environment.
### artifacts ### artifacts
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment