1
0
Fork 0
salty-dog/rules/gitlab-ci.yml

108 lines
2.2 KiB
YAML

name: salty-dog-gitlab-ci
rules:
- name: gitlab-stages
desc: should specify stages
level: info
tags:
- gitlab
- optional
check:
type: object
required: [stages]
properties:
stages:
type: array
items:
type: string
- name: gitlab-job-template
desc: template jobs should set the stage
level: info
tags:
- gitlab
- optional
check:
type: object
patternProperties:
"\\..+":
type: object
required: [stage]
properties:
stage:
type: string
- name: gitlab-job-script
desc: jobs must have a script
level: info
tags:
- gitlab
- important
check:
type: object
properties:
after_script:
type: array
before_script:
type: array
cache:
type: object
image:
type: string
include:
type: array
services:
type: array
stages:
type: array
types:
type: array
variables:
type: object
additionalProperties:
type: object
required: [script]
properties:
after_script:
type: array
items:
type: string
before_script:
type: array
items:
type: string
script:
type: array
items:
type: string
- name: gitlab-top-level
desc: should only have includes and stages at the top level
level: info
tags:
- gitlab
- optional
check:
type: object
allOf:
- properties:
include:
type: array
items:
type: object
stages:
type: array
items:
type: string
- not:
anyOf:
- required: [image]
- required: [services]
- required: [types]
- required: [before_script]
- required: [after_script]
- required: [variables]
- required: [cache]