Jenkinsfile 3.14 KB
Newer Older
Lingfan Yu's avatar
Lingfan Yu committed
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
#!/usr/bin/env groovy

def setup() {
    sh 'easy_install nose'
    sh 'git submodule init'
    sh 'git submodule update'
}

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
36
pipeline {
Lingfan Yu's avatar
Lingfan Yu committed
37
    agent none
Minjie Wang's avatar
Minjie Wang committed
38
    stages {
Lingfan Yu's avatar
Lingfan Yu committed
39
40
41
42
43
44
45
46
47
48
49
        stage('Build and Test') {
            parallel {
                stage('CPU') {
                    agent {
                        docker {
                            image 'lingfanyu/dgl-cpu'
                        }
                    }
                    stages {
                        stage('SETUP') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
50
                                setup()
Lingfan Yu's avatar
Lingfan Yu committed
51
52
53
54
                            }
                        }
                        stage('BUILD') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
55
56
57
58
59
60
                                build_dgl()
                            }
                        }
                        stage('UNIT TEST') {
                            steps {
                                unit_test()
Lingfan Yu's avatar
Lingfan Yu committed
61
62
                            }
                        }
Lingfan Yu's avatar
Lingfan Yu committed
63
                        stage('EXAMPLE TEST') {
Lingfan Yu's avatar
Lingfan Yu committed
64
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
65
                                example_test('CPU')
Lingfan Yu's avatar
Lingfan Yu committed
66
67
68
69
70
71
72
73
74
75
76
77
78
                            }
                        }
                    }
                    post {
                        always {
                            junit '*.xml'
                        }
                    }
                }
                stage('GPU') {
                    agent {
                        docker {
                            image 'lingfanyu/dgl-gpu'
Lingfan Yu's avatar
Lingfan Yu committed
79
                            args '--runtime nvidia'
Lingfan Yu's avatar
Lingfan Yu committed
80
81
82
83
84
                        }
                    }
                    stages {
                        stage('SETUP') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
85
                                setup()
Lingfan Yu's avatar
Lingfan Yu committed
86
87
88
89
                            }
                        }
                        stage('BUILD') {
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
90
91
92
93
94
95
                                build_dgl()
                            }
                        }
                        stage('UNIT TEST') {
                            steps {
                                unit_test()
Lingfan Yu's avatar
Lingfan Yu committed
96
97
                            }
                        }
Lingfan Yu's avatar
Lingfan Yu committed
98
                        stage('EXAMPLE TEST') {
Lingfan Yu's avatar
Lingfan Yu committed
99
                            steps {
Lingfan Yu's avatar
Lingfan Yu committed
100
                                example_test('GPU')
Lingfan Yu's avatar
Lingfan Yu committed
101
102
103
104
105
106
107
108
                            }
                        }
                    }
                    post {
                        always {
                            junit '*.xml'
                        }
                    }
Minjie Wang's avatar
Minjie Wang committed
109
110
111
112
113
                }
            }
        }
    }
}