blob: 94b618af2cb2cf753da6dffcc47f1b868bf064f6 [file] [log] [blame]
Sergey Otpuschennikovaad1ae02020-09-11 19:33:51 +04001#!groovy
2
3def main() {
4 String gitUrl = "${env.GERRIT_SCHEME}://${env.GERRIT_HOST}:${env.GERRIT_PORT}/${env.GERRIT_PROJECT}"
5 String gitRef = env.GERRIT_REFSPEC
6
7 stage('SCM checkout') {
8 echo "Checking out git repository from ${gitUrl} @ ${gitRef}"
9
10 checkout \
11 $class: 'GitSCM',
12 branches: [[
13 name: 'FETCH_HEAD'
14 ]],
15 userRemoteConfigs: [[
16 url: gitUrl,
17 refspec: gitRef,
18 credentialsId: env.GIT_CREDENTIALS_ID
19 ]],
20 extensions: [[
21 $class: 'WipeWorkspace'
22 ]]
23 }
24
25 stage('Yamllint') {
26 sh '''#!/bin/bash -ex
27 YAMLLINT=$(which yamllint)
28 [ -f '.yamllint' ] && YAMLLINT="${YAMLLINT} -c .yamllint"
29 git diff HEAD^ --name-only --diff-filter=AM \
30 | grep -E '\\.ya?ml$' \
31 | xargs --no-run-if-empty ${YAMLLINT}
32 '''
33
34 }
35}
36
37String podTpl = """
38 apiVersion: "v1"
39 kind: "Pod"
40 spec:
41 securityContext:
42 runAsUser: 1000
43 containers:
44 - name: "yamllint"
45 image: "${env.DOCKER_IMAGE}"
46 command:
47 - "cat"
48 securityContext:
49 privileged: false
50 tty: true
51"""
52if (env.K8S_CLUSTER == 'unset') {
53 node(env.NODE_LABEL) {
54 docker.image(env.DOCKER_IMAGE).inside('--entrypoint=""') {
55 main()
56 }
57 }
58} else {
59 podTemplate(
60 cloud: env.K8S_CLUSTER,
61 yaml: podTpl,
62 showRawYaml: false
63 ) {
64 node(POD_LABEL) {
65 container('yamllint') {
66 main()
67 }
68 }
69 }
70}