#!/usr/bin/env groovy def init_git_submodule() { sh "git submodule init" sh "git submodule update" } def setup() { init_git_submodule() } def build_dgl() { sh "if [ -d build ]; then rm -rf build; fi; mkdir build" sh "rm -rf _download" dir ("build") { sh "cmake .." sh "make -j4" } dir("python") { sh "rm -rf build *.egg-info dist" sh "pip3 uninstall -y dgl" sh "python3 setup.py install" } } 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" } } 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" } } def example_test(dev) { withEnv(["DGL_LIBRARY_PATH=${env.WORKSPACE}/build", "PYTHONPATH=${env.WORKSPACE}/python"]) { dir ("tests/scripts") { sh "bash task_example_test.sh ${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"]) { 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 { 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") } } stage("TH CPU example test") { steps { example_test("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("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 { mxnet_unit_test("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() } } } } } }