https://github.com/dmlc/dgl
Tip revision: 660f356e0664e52abf4cb187e71a2aec42a6ae28 authored by Minjie Wang on 08 March 2019, 22:07:42 UTC
Merge branch 'master' of github.com:zzhang-cn/dgl into 0.2.x
Merge branch 'master' of github.com:zzhang-cn/dgl into 0.2.x
Tip revision: 660f356
Jenkinsfile
#!/usr/bin/env groovy
def init_git_submodule() {
sh "git submodule init"
sh "git submodule update"
}
def init_git_submodule_win64() {
bat "git submodule init"
bat "git submodule update"
}
def build_dgl() {
sh "bash tests/scripts/build_dgl.sh"
}
def build_dgl_win64() {
/* Assuming that Windows slaves are already configured with MSBuild VS2017,
* CMake and Python/pip/setuptools etc. */
bat "CALL tests\\scripts\\build_dgl.bat"
}
def unit_test(backend, dev) {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python", "DGLBACKEND=${backend}"]) {
sh "bash tests/scripts/task_unit_test.sh ${backend}"
}
}
def unit_test_win64(backend, dev) {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}\\build", "PYTHONPATH=${env.WORKSPACE}\\python", "DGLBACKEND=${backend}"]) {
bat "CALL tests\\scripts\\task_unit_test.bat ${backend}"
}
}
def example_test(backend, dev) {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python", "DGLBACKEND=${backend}"]) {
dir ("tests/scripts") {
sh "bash task_example_test.sh ${dev}"
}
}
}
def example_test_win64(backend, dev) {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}\\build", "PYTHONPATH=${env.WORKSPACE}\\python", "DGLBACKEND=${backend}"]) {
dir ("tests\\scripts") {
bat "CALL task_example_test ${dev}"
}
}
}
def pytorch_tutorials() {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) {
dir ("tests/scripts") {
sh "bash task_pytorch_tutorial_test.sh"
}
}
}
def mxnet_tutorials() {
withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python", "DGLBACKEND=mxnet"]) {
dir("tests/scripts") {
sh "bash task_mxnet_tutorial_test.sh"
}
}
}
pipeline {
agent none
stages {
stage("Lint Check") {
agent {
docker { image "dgllib/dgl-ci-lint" }
}
steps {
init_git_submodule()
sh "bash tests/scripts/task_lint.sh"
}
}
stage("Build") {
parallel {
stage("CPU Build") {
agent {
docker { image "dgllib/dgl-ci-cpu" }
}
steps {
init_git_submodule()
build_dgl()
}
}
stage("GPU Build") {
agent {
docker {
image "dgllib/dgl-ci-gpu"
args "--runtime nvidia"
}
}
steps {
init_git_submodule()
build_dgl()
}
}
stage("MXNet CPU Build (temp)") {
agent {
docker { image "dgllib/dgl-ci-mxnet-cpu" }
}
steps {
init_git_submodule()
build_dgl()
}
}
stage("CPU Build (Win64/PyTorch)") {
agent {
label "windows"
}
steps {
init_git_submodule_win64()
build_dgl_win64()
}
}
}
}
stage("Test") {
parallel {
stage("Pytorch CPU") {
agent {
docker { image "dgllib/dgl-ci-cpu" }
}
stages {
stage("TH CPU unittest") {
steps { unit_test("pytorch", "CPU") }
}
stage("TH CPU example test") {
steps { example_test("pytorch", "CPU") }
}
}
post {
always { junit "*.xml" }
}
}
stage("Pytorch CPU (Windows)") {
agent { label "windows" }
stages {
stage("TH CPU Win64 unittest") {
steps { unit_test_win64("pytorch", "CPU") }
}
stage("TH CPU Win64 example test") {
steps { example_test_win64("pytorch", "CPU") }
}
}
post {
always { junit "*.xml" }
}
}
stage("Pytorch GPU") {
agent {
docker {
image "dgllib/dgl-ci-gpu"
args "--runtime nvidia"
}
}
stages {
// TODO: have GPU unittest
//stage("TH GPU unittest") {
// steps { pytorch_unit_test("GPU") }
//}
stage("TH GPU example test") {
steps { example_test("pytorch", "GPU") }
}
}
// TODO: have GPU unittest
//post {
// always { junit "*.xml" }
//}
}
stage("MXNet CPU") {
agent {
docker { image "dgllib/dgl-ci-mxnet-cpu" }
}
stages {
stage("MX Unittest") {
steps { unit_test("mxnet", "CPU") }
}
}
post {
always { junit "*.xml" }
}
}
}
}
stage("Doc") {
parallel {
stage("TH Tutorial") {
agent {
docker { image "dgllib/dgl-ci-cpu" }
}
steps {
pytorch_tutorials()
}
}
stage("MX Tutorial") {
agent {
docker { image "dgllib/dgl-ci-mxnet-cpu" }
}
steps {
mxnet_tutorials()
}
}
}
}
}
}