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]