summaryrefslogtreecommitdiffstats
path: root/Jenkinsfile
blob: f53c21881b01144ca5614f48ff8c358d8cd019c2 (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
66
67
68
69
70
71
72
pipeline {
    options {
      timeout(time: 1, unit: 'HOURS') 
    }
    agent {
        docker 'cuberite/docker-ci/minimal:latest'
    }
    stages {
        stage("Prepare") {
            steps {
                sh 'git submodule update --init'
            }
        }
        stage("Check") {
            parallel {
                stage("CheckBasicStyle") {
                    steps {
                        dir("src") {
                            sh 'find . -name \\*.cpp -or -name \\*.h > AllFiles.lst'
                            sh 'lua CheckBasicStyle.lua'
                            sh 'cd Bindings && lua CheckBindingsDependencies.lua'
                        }
                    }
                }
                stage("clang-tidy") {
                    steps {
                        sh './clang-tidy.sh -j 4'
                    }
                }
            }
        }
        stage("Build") {
            parallel {
                stage("gcc") {
                    environment {
                        CI_CUBERITE_BUILD_TYPE = 'Release'
                        CI_JOB_NUMBER = "{$env.BUILD_ID}"
                        CC = "gcc"
                        CXX = "g++"
                    }
                    steps {
                        sh 'bash ./cibuild.sh'
                    }
                }
                stage("clang") {
                    environment {
                        CI_CUBERITE_BUILD_TYPE = 'Debug'
                        CI_JOB_NUMBER = "{$env.BUILD_ID}"
                        CC = "clang"
                        CXX = "clang++"
                    }
                    steps {
                        sh 'bash ./cibuild.sh'
                    }
                }
            }
        }
		stage("Artifacts") {
			when {
				branch 'master'
			}
            steps {
                archiveArtifacts artifacts: 'gcc_Release/Server/.luacheckrc'
            }
        }
    }
    post {
        always {
            cleanWs()
        }
    }
}