summaryrefslogtreecommitdiff
path: root/Jenkinsfile
blob: 2f841c3ca595c68ad12a745a2bd69eba1802cb03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
String cron_string = BRANCH_NAME == "master" ? "@daily" : ""
pipeline {
    agent any
    options  {
        ansiColor('xterm')
        parallelsAlwaysFailFast()
    }
    triggers { cron(cron_string) }
    stages {
        stage('Lint') {
            agent {
                docker {
                    image "chn2guevara/nvim:stable"
                    alwaysPull true
                }
            }
            steps {
                sh 'apk --no-cache add stylua luacheck'
                sh 'make lint'
            }
        }
        stage('Test') {
            matrix {
                agent {
                    docker {
                        image "chn2guevara/nvim:${TAG}"
                        alwaysPull true
                        customWorkspace "workspace/${JOB_NAME}/${BUILD_NUMBER}/IMAGE/chn2guevara-nvim-${TAG}/"
                    }
                }
                axes {
                    axis {
                        name 'TAG'
                        values 'stable', 'nightly'
                    }
                }
                stages {
                    stage('Test') {
                        steps {
                            sh '''
                            apk update && \
                            apk add go && \
                            mkdir tmp && \
                            cd tmp && \
                            git clone https://github.com/prometheus/prometheus.git . && \
                            GO111MODULE=on go install github.com/prometheus/prometheus/cmd/promtool && \
                            export PATH="/root/go/bin/:${PATH}" && \
                            cd .. && \
                            make test
                            '''
                        }
                    }
                }
            }
        }
    }
    post {
        always {
            step([$class: 'Mailer',
                notifyEveryUnstableBuild: true,
                recipients: "christian+jenkins@segundo.io",
                sendToIndividuals: true])
        }
    }
}