Commit 2cefaaa2 authored by Evan Read's avatar Evan Read

Merge branch 'add-default-docs' into 'master'

Add usage of `default:`

Closes #63351

See merge request gitlab-org/gitlab-ce!30677
parents 9fe1cdf7 feae50ff
...@@ -193,13 +193,14 @@ You can simply define an image that will be used for all jobs and a list of ...@@ -193,13 +193,14 @@ You can simply define an image that will be used for all jobs and a list of
services that you want to use during build time: services that you want to use during build time:
```yaml ```yaml
image: ruby:2.2 default:
image: ruby:2.2
services: services:
- postgres:9.3 - postgres:9.3
before_script: before_script:
- bundle install - bundle install
test: test:
script: script:
...@@ -209,8 +210,9 @@ test: ...@@ -209,8 +210,9 @@ test:
It is also possible to define different images and services per job: It is also possible to define different images and services per job:
```yaml ```yaml
before_script: default:
- bundle install before_script:
- bundle install
test:2.1: test:2.1:
image: ruby:2.1 image: ruby:2.1
...@@ -231,18 +233,19 @@ Or you can pass some [extended configuration options](#extended-docker-configura ...@@ -231,18 +233,19 @@ Or you can pass some [extended configuration options](#extended-docker-configura
for `image` and `services`: for `image` and `services`:
```yaml ```yaml
image: default:
name: ruby:2.2 image:
entrypoint: ["/bin/bash"] name: ruby:2.2
entrypoint: ["/bin/bash"]
services: services:
- name: my-postgres:9.4 - name: my-postgres:9.4
alias: db-postgres alias: db-postgres
entrypoint: ["/usr/local/bin/db-postgres"] entrypoint: ["/usr/local/bin/db-postgres"]
command: ["start"] command: ["start"]
before_script: before_script:
- bundle install - bundle install
test: test:
script: script:
......
...@@ -119,6 +119,35 @@ The following table lists available parameters for jobs: ...@@ -119,6 +119,35 @@ The following table lists available parameters for jobs:
NOTE: **Note:** NOTE: **Note:**
Parameters `types` and `type` are [deprecated](#deprecated-parameters). Parameters `types` and `type` are [deprecated](#deprecated-parameters).
## Setting default parameters
Some parameters can be set globally as the default for all jobs using the
`default:` keyword. Default parameters can then be overridden by job-specific
configuration.
The following job parameters can be defined inside a `default:` block:
- [`image`](#image)
- [`services`](#services)
- [`before_script`](#before_script-and-after_script)
- [`after_script`](#before_script-and-after_script)
- [`cache`](#cache)
In the following example, the `ruby:2.5` image is set as the default for all
jobs except the `rspec 2.6` job, which uses the `ruby:2.6` image:
```yaml
default:
image: ruby:2.5
rspec:
script: bundle exec rspec
rspec 2.6:
image: ruby:2.6
script: bundle exec rspec
```
## Parameter details ## Parameter details
The following are detailed explanations for parameters used to configure CI/CD pipelines. The following are detailed explanations for parameters used to configure CI/CD pipelines.
...@@ -239,8 +268,9 @@ It's possible to overwrite the globally defined `before_script` and `after_scrip ...@@ -239,8 +268,9 @@ It's possible to overwrite the globally defined `before_script` and `after_scrip
if you set it per-job: if you set it per-job:
```yaml ```yaml
before_script: default:
- global before script before_script:
- global before script
job: job:
before_script: before_script:
...@@ -2550,18 +2580,39 @@ You can set it globally or per-job in the [`variables`](#variables) section. ...@@ -2550,18 +2580,39 @@ You can set it globally or per-job in the [`variables`](#variables) section.
The following parameters are deprecated. The following parameters are deprecated.
### `types` ### Globally-defined `types`
CAUTION: **Deprecated:** CAUTION: **Deprecated:**
`types` is deprecated, and could be removed in a future release. `types` is deprecated, and could be removed in a future release.
Use [`stages`](#stages) instead. Use [`stages`](#stages) instead.
### `type` ### Job-defined `type`
CAUTION: **Deprecated:** CAUTION: **Deprecated:**
`type` is deprecated, and could be removed in one of the future releases. `type` is deprecated, and could be removed in one of the future releases.
Use [`stage`](#stage) instead. Use [`stage`](#stage) instead.
### Globally-defined `image`, `services`, `cache`, `before_script`, `after_script`
Defining `image`, `services`, `cache`, `before_script`, and
`after_script` globally is deprecated. Support could be removed
from a future release.
Use [`default:`](#setting-default-parameters) instead. For example:
```yaml
default:
image: ruby:2.5
services:
- docker:dind
cache:
paths: [vendor/]
before_script:
- bundle install --path vendor/
after_script:
- rm -rf tmp/
```
## Custom build directories ## Custom build directories
> [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1267) in Gitlab Runner 11.10 > [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1267) in Gitlab Runner 11.10
......
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