Jenkinsfile 3.53 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() {
Minjie Wang's avatar
Minjie Wang committed
4
5
  sh "git submodule init"
  sh "git submodule update"
Lingfan Yu's avatar
Lingfan Yu committed
6
7
}

Lingfan Yu's avatar
Lingfan Yu committed
8
def setup() {
Minjie Wang's avatar
Minjie Wang committed
9
  init_git_submodule()
Lingfan Yu's avatar
Lingfan Yu committed
10
11
}

Lingfan Yu's avatar
Lingfan Yu committed
12
def build_dgl() {
Minjie Wang's avatar
Minjie Wang committed
13
14
15
16
17
  sh "if [ -d build ]; then rm -rf build; fi; mkdir build"
  dir ("build") {
    sh "cmake .."
    sh "make -j4"
  }
Minjie Wang's avatar
Minjie Wang committed
18
19
20
21
22
  dir("python") {
    sh "rm -rf build *.egg-info dist"
    sh "pip3 uninstall -y dgl"
    sh "python3 setup.py install"
  }
Lingfan Yu's avatar
Lingfan Yu committed
23
24
}

Minjie Wang's avatar
Minjie Wang committed
25
26
27
28
29
30
def pytorch_unit_test(dev) {
  withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) {
    sh "python3 -m nose -v --with-xunit tests"
    sh "python3 -m nose -v --with-xunit tests/pytorch"
    sh "python3 -m nose -v --with-xunit tests/graph_index"
  }
Lingfan Yu's avatar
Lingfan Yu committed
31
32
}

Minjie Wang's avatar
Minjie Wang committed
33
34
35
36
def mxnet_unit_test(dev) {
  withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) {
    sh "python3 -m nose -v --with-xunit tests/mxnet"
  }
Da Zheng's avatar
Da Zheng committed
37
38
}

Lingfan Yu's avatar
Lingfan Yu committed
39
def example_test(dev) {
Minjie Wang's avatar
Minjie Wang committed
40
41
  withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) {
    dir ("tests/scripts") {
Minjie Wang's avatar
Minjie Wang committed
42
43
44
45
46
47
      sh "./task_example_test.sh ${dev}"
    }
  }
}

def pytorch_tutorials() {
Minjie Wang's avatar
Minjie Wang committed
48
49
  withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) {
    dir ("tests/scripts") {
Minjie Wang's avatar
Minjie Wang committed
50
      sh "./task_tutorial_test.sh"
Lingfan Yu's avatar
Lingfan Yu committed
51
    }
Minjie Wang's avatar
Minjie Wang committed
52
  }
Lingfan Yu's avatar
Lingfan Yu committed
53
54
}

Minjie Wang's avatar
Minjie Wang committed
55
pipeline {
Minjie Wang's avatar
Minjie Wang committed
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  agent none
  stages {
    stage("Lint Check") {
      agent { docker { image "dgllib/dgl-ci-lint" } }
      steps {
        init_git_submodule()
        sh "tests/scripts/task_lint.sh"
      }
    }
    stage("Build") {
      parallel {
        stage("CPU Build") {
          agent { docker { image "dgllib/dgl-ci-cpu" } }
          steps {
            setup()
            build_dgl()
          }
        }
        stage("GPU Build") {
          agent {
            docker {
              image "dgllib/dgl-ci-gpu"
              args "--runtime nvidia"
            }
          }
          steps {
            setup()
            build_dgl()
          }
        }
        stage("MXNet CPU Build (temp)") {
          agent { docker { image "dgllib/dgl-ci-mxnet-cpu" } }
          steps {
            setup()
            build_dgl()
          }
        }
      }
    }
    stage("Test") {
      parallel {
        stage("Pytorch CPU") {
          agent { docker { image "dgllib/dgl-ci-cpu" } }
          stages {
            stage("TH CPU unittest") {
              steps { pytorch_unit_test("CPU") }
Lingfan Yu's avatar
Lingfan Yu committed
102
            }
Minjie Wang's avatar
Minjie Wang committed
103
104
            stage("TH CPU example test") {
              steps { example_test("CPU") }
Lingfan Yu's avatar
Lingfan Yu committed
105
            }
Minjie Wang's avatar
Minjie Wang committed
106
107
108
109
          }
          post {
            always { junit "*.xml" }
          }
Lingfan Yu's avatar
Lingfan Yu committed
110
        }
Minjie Wang's avatar
Minjie Wang committed
111
112
113
114
115
        stage("Pytorch GPU") {
          agent {
            docker {
              image "dgllib/dgl-ci-gpu"
              args "--runtime nvidia"
Minjie Wang's avatar
Minjie Wang committed
116
            }
Minjie Wang's avatar
Minjie Wang committed
117
118
119
120
121
122
123
124
125
126
127
128
129
130
          }
          stages {
            // TODO: have GPU unittest
            //stage("TH GPU unittest") {
            //  steps { pytorch_unit_test("GPU") }
            //}
            stage("TH GPU example test") {
              steps { example_test("GPU") }
            }
          }
          // TODO: have GPU unittest
          //post {
          //  always { junit "*.xml" }
          //}
Minjie Wang's avatar
Minjie Wang committed
131
        }
Minjie Wang's avatar
Minjie Wang committed
132
133
134
135
136
        stage("MXNet CPU") {
          agent { docker { image "dgllib/dgl-ci-mxnet-cpu" } }
          stages {
            stage("MX Unittest") {
              steps { mxnet_unit_test("CPU") }
Da Zheng's avatar
Da Zheng committed
137
            }
Minjie Wang's avatar
Minjie Wang committed
138
139
140
141
          }
          post {
            always { junit "*.xml" }
          }
Da Zheng's avatar
Da Zheng committed
142
        }
Minjie Wang's avatar
Minjie Wang committed
143
144
145
146
147
148
149
      }
    }
    stage("Doc") {
      agent { docker { image "dgllib/dgl-ci-cpu" } }
      steps {
        pytorch_tutorials()
      }
Minjie Wang's avatar
Minjie Wang committed
150
    }
Minjie Wang's avatar
Minjie Wang committed
151
  }
Minjie Wang's avatar
Minjie Wang committed
152
}