2016-09-01 11:49:34 +00:00
|
|
|
# Validate the .gitlab-ci.yml
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
> [Introduced][ce-5953] in GitLab 8.12.
|
|
|
|
|
2016-08-31 09:16:25 +00:00
|
|
|
Check whether your .gitlab-ci.yml file is valid.
|
|
|
|
|
|
|
|
```
|
|
|
|
POST ci/lint
|
|
|
|
```
|
|
|
|
|
|
|
|
| Attribute | Type | Required | Description |
|
|
|
|
| ---------- | ------- | -------- | -------- |
|
|
|
|
| `content` | hash | yes | the .gitlab-ci.yaml content|
|
|
|
|
|
|
|
|
```bash
|
2016-09-05 09:06:16 +00:00
|
|
|
curl --request POST "https://gitlab.example.com/api/v3/ci/lint?content={
|
|
|
|
image: "ruby:2.1",
|
|
|
|
services: ["postgres"],
|
|
|
|
before_script: ["gem install bundler", "bundle install", "bundle exec rake db:create"],
|
|
|
|
variables: {"DB_NAME": "postgres"},
|
|
|
|
types: ["test", "deploy", "notify"],
|
|
|
|
rspec: {
|
|
|
|
script: "rake spec",
|
|
|
|
tags: ["ruby", "postgres"],
|
|
|
|
only: ["branches"]
|
|
|
|
},
|
|
|
|
spinach: {
|
|
|
|
script: "rake spinach",
|
|
|
|
allow_failure: true,
|
|
|
|
tags: ["ruby", "mysql"],
|
|
|
|
except: ["tags"]
|
|
|
|
},
|
|
|
|
staging: {
|
|
|
|
variables: {KEY1: "value1", KEY2: "value2"},
|
|
|
|
script: "cap deploy stating",
|
|
|
|
type: "deploy",
|
|
|
|
tags: ["ruby", "mysql"],
|
|
|
|
except: ["stable"]
|
|
|
|
},
|
|
|
|
production: {
|
|
|
|
variables: {DB_NAME: "mysql"},
|
|
|
|
type: "deploy",
|
|
|
|
script: ["cap deploy production", "cap notify"],
|
|
|
|
tags: ["ruby", "mysql"],
|
|
|
|
only: ["master", "/^deploy-.*$/"]
|
|
|
|
},
|
|
|
|
dockerhub: {
|
|
|
|
type: "notify",
|
|
|
|
script: "curl http://dockerhub/URL",
|
|
|
|
tags: ["ruby", "postgres"],
|
|
|
|
only: ["branches"]
|
|
|
|
}
|
|
|
|
}"
|
2016-08-31 09:16:25 +00:00
|
|
|
```
|
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
Be sure to copy paste the exact contents of `.gitlab-ci.yml` as YAML is very picky with indentation and spaces.
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
Example responses:
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
* Valid content:
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
```json
|
|
|
|
{
|
|
|
|
"status": "valid",
|
|
|
|
"errors": []
|
|
|
|
}
|
|
|
|
```
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
* Invalid content:
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
```json
|
|
|
|
{
|
|
|
|
"status": "invalid",
|
|
|
|
"errors": [
|
|
|
|
"variables config should be a hash of key value pairs"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
2016-08-31 09:16:25 +00:00
|
|
|
|
2016-09-05 09:06:16 +00:00
|
|
|
* Without the content attribute:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"error": "content is missing"
|
|
|
|
}
|
|
|
|
```
|