Jenkinsfile 3.59 KB
Newer Older
Lingfan Yu's avatar
Lingfan Yu committed
1
2
#!/usr/bin/env groovy

Lingfan Yu's avatar
Lingfan Yu committed
3
def init_git_submodule() {
Lingfan Yu's avatar
Lingfan Yu committed
4
5
6
7
    sh 'git submodule init'
    sh 'git submodule update'
}

Lingfan Yu's avatar
Lingfan Yu committed
8
9
10
11
12
def setup() {
    sh 'easy_install nose'
    init_git_submodule()
}

Lingfan Yu's avatar
Lingfan Yu committed
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
def build_dgl() {
    sh 'if [ -d build ]; then rm -rf build; fi; mkdir build'
    dir('python') {
        sh 'python3 setup.py install'
    }
    dir ('build') {
        sh 'cmake ..'
        sh 'make -j$(nproc)'
    }
}

def unit_test() {
    withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build"]) {
        sh 'nosetests tests -v --with-xunit'
        sh 'nosetests tests/pytorch -v --with-xunit'
        sh 'nosetests tests/graph_index -v --with-xunit'
    }
}

def example_test(dev) {
    dir ('tests/scripts') {
        withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build"]) {
            sh "./test_examples.sh ${dev}"
        }
    }
}

Minjie Wang's avatar
Minjie Wang committed
40
pipeline {
Lingfan Yu's avatar
Lingfan Yu committed
41
    agent none
Minjie Wang's avatar
Minjie Wang committed
42
    stages {
Lingfan Yu's avatar
Lingfan Yu committed
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
        stage('Lint Check') {
            agent {
                docker {
                    image 'lingfanyu/dgl-lint'
                }
            }
            stages {
                stage('CHECK') {
                    steps {
                        init_git_submodule()
                        sh 'tests/scripts/task_lint.sh'
                    }
                }
            }
        }
Lingfan Yu's avatar
Lingfan Yu committed
58
59
60
61
62
63
64
65
66
67
68
        stage('Build and Test') {
            parallel {
                stage('CPU') {
                    agent {
                        docker {
                            image 'lingfanyu/dgl-cpu'
                        }
                    }
                    stages {
                        stage('SETUP') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
69
                                setup()
Lingfan Yu's avatar
Lingfan Yu committed
70
71
72
73
                            }
                        }
                        stage('BUILD') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
74
75
76
77
78
79
                                build_dgl()
                            }
                        }
                        stage('UNIT TEST') {
                            steps {
                                unit_test()
Lingfan Yu's avatar
Lingfan Yu committed
80
81
                            }
                        }
Lingfan Yu's avatar
Lingfan Yu committed
82
                        stage('EXAMPLE TEST') {
Lingfan Yu's avatar
Lingfan Yu committed
83
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
84
                                example_test('CPU')
Lingfan Yu's avatar
Lingfan Yu committed
85
86
87
88
89
90
91
92
93
94
95
96
97
                            }
                        }
                    }
                    post {
                        always {
                            junit '*.xml'
                        }
                    }
                }
                stage('GPU') {
                    agent {
                        docker {
                            image 'lingfanyu/dgl-gpu'
Lingfan Yu's avatar
Lingfan Yu committed
98
                            args '--runtime nvidia'
Lingfan Yu's avatar
Lingfan Yu committed
99
100
101
102
103
                        }
                    }
                    stages {
                        stage('SETUP') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
104
                                setup()
Lingfan Yu's avatar
Lingfan Yu committed
105
106
107
108
                            }
                        }
                        stage('BUILD') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
109
110
111
112
113
114
                                build_dgl()
                            }
                        }
                        stage('UNIT TEST') {
                            steps {
                                unit_test()
Lingfan Yu's avatar
Lingfan Yu committed
115
116
                            }
                        }
Lingfan Yu's avatar
Lingfan Yu committed
117
                        stage('EXAMPLE TEST') {
Lingfan Yu's avatar
Lingfan Yu committed
118
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
119
                                example_test('GPU')
Lingfan Yu's avatar
Lingfan Yu committed
120
121
122
123
124
125
126
127
                            }
                        }
                    }
                    post {
                        always {
                            junit '*.xml'
                        }
                    }
Minjie Wang's avatar
Minjie Wang committed
128
129
130
131
132
                }
            }
        }
    }
}