gitlab-org--gitlab-foss/doc/api/ci/lint.md

87 lines
1.8 KiB
Markdown
Raw Normal View History

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"
}
```