Unverified Commit 3075b277 authored by Jinjing Zhou's avatar Jinjing Zhou Committed by GitHub
Browse files

[CI] Fix regression trigger (#2862)

* fix

* fix

* debug

* fix

* fix

* fix

* fix

* ci

* fix

* fix
parent ebc6a85a
#!/usr/bin/env groovy #!/usr/bin/env groovy
dgl_linux_libs = "build/libdgl.so, build/runUnitTests, python/dgl/_ffi/_cy3/core.cpython-36m-x86_64-linux-gnu.so, build/tensoradapter/pytorch/*.so" dgl_linux_libs = 'build/libdgl.so, build/runUnitTests, python/dgl/_ffi/_cy3/core.cpython-36m-x86_64-linux-gnu.so, build/tensoradapter/pytorch/*.so'
// Currently DGL on Windows is not working with Cython yet // Currently DGL on Windows is not working with Cython yet
dgl_win64_libs = "build\\dgl.dll, build\\runUnitTests.exe, build\\tensoradapter\\pytorch\\*.dll" dgl_win64_libs = "build\\dgl.dll, build\\runUnitTests.exe, build\\tensoradapter\\pytorch\\*.dll"
def init_git() { def init_git() {
sh "rm -rf *" sh 'rm -rf *'
checkout scm checkout scm
sh "git submodule update --recursive --init" sh 'git submodule update --recursive --init'
} }
def init_git_win64() { def init_git_win64() {
checkout scm checkout scm
bat "git submodule update --recursive --init" bat 'git submodule update --recursive --init'
} }
// pack libraries for later use // pack libraries for later use
...@@ -30,7 +30,7 @@ def unpack_lib(name, libs) { ...@@ -30,7 +30,7 @@ def unpack_lib(name, libs) {
def build_dgl_linux(dev) { def build_dgl_linux(dev) {
init_git() init_git()
sh "bash tests/scripts/build_dgl.sh ${dev}" sh "bash tests/scripts/build_dgl.sh ${dev}"
sh "ls -lh /usr/lib/x86_64-linux-gnu/" sh 'ls -lh /usr/lib/x86_64-linux-gnu/'
pack_lib("dgl-${dev}-linux", dgl_linux_libs) pack_lib("dgl-${dev}-linux", dgl_linux_libs)
} }
...@@ -44,13 +44,13 @@ def build_dgl_win64(dev) { ...@@ -44,13 +44,13 @@ def build_dgl_win64(dev) {
def cpp_unit_test_linux() { def cpp_unit_test_linux() {
init_git() init_git()
unpack_lib("dgl-cpu-linux", dgl_linux_libs) unpack_lib('dgl-cpu-linux', dgl_linux_libs)
sh "bash tests/scripts/task_cpp_unit_test.sh" sh 'bash tests/scripts/task_cpp_unit_test.sh'
} }
def cpp_unit_test_win64() { def cpp_unit_test_win64() {
init_git_win64() init_git_win64()
unpack_lib("dgl-cpu-win64", dgl_win64_libs) unpack_lib('dgl-cpu-win64', dgl_win64_libs)
bat "CALL tests\\scripts\\task_cpp_unit_test.bat" bat "CALL tests\\scripts\\task_cpp_unit_test.bat"
} }
...@@ -88,100 +88,97 @@ def example_test_win64(backend, dev) { ...@@ -88,100 +88,97 @@ def example_test_win64(backend, dev) {
def tutorial_test_linux(backend) { def tutorial_test_linux(backend) {
init_git() init_git()
unpack_lib("dgl-cpu-linux", dgl_linux_libs) unpack_lib('dgl-cpu-linux', dgl_linux_libs)
timeout(time: 20, unit: 'MINUTES') { timeout(time: 20, unit: 'MINUTES') {
sh "bash tests/scripts/task_${backend}_tutorial_test.sh" sh "bash tests/scripts/task_${backend}_tutorial_test.sh"
} }
} }
def is_authorized(name) {
def authorized_user = ['VoVAllen', 'BarclayII', 'jermainewang', 'zheng-da', 'mufeili']
return (name in authorized_user)
}
pipeline { pipeline {
triggers {
issueCommentTrigger('@dgl-bot .*')
}
agent any agent any
stages { stages {
stage("Lint Check") { stage('Regression Test Trigger') {
agent { agent {
docker { docker {
label "linux-c52x-node" label 'linux-benchmark-node'
image "dgllib/dgl-ci-lint" image 'dgllib/dgl-ci-lint'
alwaysPull true alwaysPull true
} }
} }
when { triggeredBy 'IssueCommentCause' }
steps { steps {
init_git() checkout scm
sh "bash tests/scripts/task_lint.sh" script {
} def comment = env.GITHUB_COMMENT
post { def author = env.GITHUB_COMMENT_AUTHOR
always { if (!is_authorized(author)) {
cleanWs disableDeferredWipeout: true, deleteDirs: true error('Not authorized to launch regression tests')
}
dir('benchmark_scripts_repo') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']],
userRemoteConfigs: [[credentialsId: 'github', url: 'https://github.com/dglai/DGL_scripts.git']]])
}
sh('cp benchmark_scripts_repo/benchmark/* benchmarks/scripts/')
def command_lists = comment.split(' ')
def instance_type = command_lists[2].replace('.', '')
if (command_lists.size() != 5) {
pullRequest.comment('Cannot run the regression test due to unknown command')
error('Unknown command')
} else {
pullRequest.comment("Start the Regression test. View at ${RUN_DISPLAY_URL}")
}
dir('benchmarks/scripts') {
sh('python3 -m pip install boto3')
sh("PYTHONUNBUFFERED=1 GIT_URL=${env.GIT_URL} GIT_BRANCH=${env.CHANGE_BRANCH} python3 run_reg_test.py --data-folder ${env.GIT_COMMIT}_${instance_type} --run-cmd '${comment}'")
}
pullRequest.comment("Finished the Regression test. Result table is at https://dgl-asv-data.s3-us-west-2.amazonaws.com/${env.GIT_COMMIT}_${instance_type}/results/result.csv. Jenkins job link is ${RUN_DISPLAY_URL}. ")
currentBuild.result = 'SUCCESS'
return
} }
} }
} }
stage("Build") { stage('Bot Instruction') {
parallel { agent {
stage("CPU Build") { docker {
agent { label 'linux-benchmark-node'
docker { image 'dgllib/dgl-ci-lint'
label "linux-c52x-node" alwaysPull true
image "dgllib/dgl-ci-cpu:conda"
alwaysPull true
}
}
steps {
build_dgl_linux("cpu")
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
}
stage("GPU Build") {
agent {
docker {
label "linux-c52x-node"
image "dgllib/dgl-ci-gpu:conda"
args "-u root"
alwaysPull true
}
}
steps {
// sh "nvidia-smi"
build_dgl_linux("gpu")
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
stage("CPU Build (Win64)") { }
// Windows build machines are manually added to Jenkins master with steps {
// "windows" label as permanent agents. script {
agent { label "windows" } def prOpenTriggerCause = currentBuild.getBuildCauses('jenkins.branch.BranchEventCause')
steps { if (prOpenTriggerCause) {
build_dgl_win64("cpu") if (env.BUILD_ID == '1') {
} pullRequest.comment('To trigger regression tests: \n - `@dgl-bot run [instance-type] [which tests] [compare-with-branch]`; \n For example: `@dgl-bot run g4dn.4xlarge all dmlc/master` or `@dgl-bot run c5.9xlarge kernel,api dmlc/master`')
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
} }
} }
echo('Not the first build')
} }
// Currently we don't have Windows GPU build machines
} }
} }
stage("Test") { stage('CI'){
parallel { when { not {triggeredBy 'IssueCommentCause'} }
stage("C++ CPU") { stages{
agent { stage('Lint Check') {
docker { agent {
label "linux-c52x-node" docker {
image "dgllib/dgl-ci-cpu:conda" label 'linux-c52x-node'
image 'dgllib/dgl-ci-lint'
alwaysPull true alwaysPull true
} }
} }
steps { steps {
cpp_unit_test_linux() init_git()
sh 'bash tests/scripts/task_lint.sh'
} }
post { post {
always { always {
...@@ -189,185 +186,260 @@ pipeline { ...@@ -189,185 +186,260 @@ pipeline {
} }
} }
} }
stage("C++ CPU (Win64)") { stage('Build') {
agent { label "windows" } parallel {
steps { stage('CPU Build') {
cpp_unit_test_win64() agent {
} docker {
post { label 'linux-c52x-node'
always { image 'dgllib/dgl-ci-cpu:conda'
cleanWs disableDeferredWipeout: true, deleteDirs: true alwaysPull true
} }
}
}
stage("Tensorflow CPU") {
agent {
docker {
label "linux-c52x-node"
image "dgllib/dgl-ci-cpu:conda"
alwaysPull true
}
}
stages {
stage("Unit test") {
steps {
unit_test_linux("tensorflow", "cpu")
} }
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
}
stage("Tensorflow GPU") {
agent {
docker {
label "linux-gpu-node"
image "dgllib/dgl-ci-gpu:conda"
args "--runtime nvidia"
alwaysPull true
}
}
stages {
stage("Unit test") {
steps { steps {
unit_test_linux("tensorflow", "gpu") build_dgl_linux('cpu')
} }
} post {
} always {
post { cleanWs disableDeferredWipeout: true, deleteDirs: true
always { }
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
}
stage("Torch CPU") {
agent {
docker {
label "linux-c52x-node"
image "dgllib/dgl-ci-cpu:conda"
alwaysPull true
}
}
stages {
stage("Unit test") {
steps {
unit_test_linux("pytorch", "cpu")
} }
} }
stage("Example test") { stage('GPU Build') {
steps { agent {
example_test_linux("pytorch", "cpu") docker {
label 'linux-c52x-node'
image 'dgllib/dgl-ci-gpu:conda'
args '-u root'
alwaysPull true
}
} }
}
stage("Tutorial test") {
steps { steps {
tutorial_test_linux("pytorch") // sh "nvidia-smi"
build_dgl_linux('gpu')
} }
} post {
} always {
post { cleanWs disableDeferredWipeout: true, deleteDirs: true
always { }
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
}
stage("Torch CPU (Win64)") {
agent { label "windows" }
stages {
stage("Unit test") {
steps {
unit_test_win64("pytorch", "cpu")
} }
} }
stage("Example test") { stage('CPU Build (Win64)') {
// Windows build machines are manually added to Jenkins master with
// "windows" label as permanent agents.
agent { label 'windows' }
steps { steps {
example_test_win64("pytorch", "cpu") build_dgl_win64('cpu')
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
} // Currently we don't have Windows GPU build machines
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
stage("Torch GPU") { stage('Test') {
agent { parallel {
docker { stage('C++ CPU') {
label "linux-gpu-node" agent {
image "dgllib/dgl-ci-gpu:conda" docker {
args "--runtime nvidia" label 'linux-c52x-node'
alwaysPull true image 'dgllib/dgl-ci-cpu:conda'
} alwaysPull true
} }
stages { }
stage("Unit test") {
steps { steps {
sh "nvidia-smi" cpp_unit_test_linux()
unit_test_linux("pytorch", "gpu") }
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
stage("Example test") { stage('C++ CPU (Win64)') {
agent { label 'windows' }
steps { steps {
example_test_linux("pytorch", "gpu") cpp_unit_test_win64()
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
} stage('Tensorflow CPU') {
post { agent {
always { docker {
cleanWs disableDeferredWipeout: true, deleteDirs: true label 'linux-c52x-node'
image 'dgllib/dgl-ci-cpu:conda'
alwaysPull true
}
}
stages {
stage('Unit test') {
steps {
unit_test_linux('tensorflow', 'cpu')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
} stage('Tensorflow GPU') {
} agent {
stage("MXNet CPU") { docker {
agent { label 'linux-gpu-node'
docker { image 'dgllib/dgl-ci-gpu:conda'
label "linux-c52x-node" args '--runtime nvidia'
image "dgllib/dgl-ci-cpu:conda" alwaysPull true
alwaysPull true }
}
stages {
stage('Unit test') {
steps {
unit_test_linux('tensorflow', 'gpu')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
} stage('Torch CPU') {
stages { agent {
stage("Unit test") { docker {
steps { label 'linux-c52x-node'
unit_test_linux("mxnet", "cpu") image 'dgllib/dgl-ci-cpu:conda'
alwaysPull true
}
}
stages {
stage('Unit test') {
steps {
unit_test_linux('pytorch', 'cpu')
}
}
stage('Example test') {
steps {
example_test_linux('pytorch', 'cpu')
}
}
stage('Tutorial test') {
steps {
tutorial_test_linux('pytorch')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
//stage("Tutorial test") { stage('Torch CPU (Win64)') {
// steps { agent { label 'windows' }
// tutorial_test_linux("mxnet") stages {
// } stage('Unit test') {
//} steps {
} unit_test_win64('pytorch', 'cpu')
post { }
always { }
cleanWs disableDeferredWipeout: true, deleteDirs: true stage('Example test') {
steps {
example_test_win64('pytorch', 'cpu')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
} stage('Torch GPU') {
} agent {
stage("MXNet GPU") { docker {
agent { label 'linux-gpu-node'
docker { image 'dgllib/dgl-ci-gpu:conda'
label "linux-gpu-node" args '--runtime nvidia'
image "dgllib/dgl-ci-gpu:conda" alwaysPull true
args "--runtime nvidia" }
alwaysPull true }
stages {
stage('Unit test') {
steps {
sh 'nvidia-smi'
unit_test_linux('pytorch', 'gpu')
}
}
stage('Example test') {
steps {
example_test_linux('pytorch', 'gpu')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
} stage('MXNet CPU') {
stages { agent {
stage("Unit test") { docker {
steps { label 'linux-c52x-node'
sh "nvidia-smi" image 'dgllib/dgl-ci-cpu:conda'
unit_test_linux("mxnet", "gpu") alwaysPull true
}
}
stages {
stage('Unit test') {
steps {
unit_test_linux('mxnet', 'cpu')
}
}
//stage("Tutorial test") {
// steps {
// tutorial_test_linux("mxnet")
// }
//}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
} }
} }
} stage('MXNet GPU') {
post { agent {
always { docker {
cleanWs disableDeferredWipeout: true, deleteDirs: true label 'linux-gpu-node'
image 'dgllib/dgl-ci-gpu:conda'
args '--runtime nvidia'
alwaysPull true
}
}
stages {
stage('Unit test') {
steps {
sh 'nvidia-smi'
unit_test_linux('mxnet', 'gpu')
}
}
}
post {
always {
cleanWs disableDeferredWipeout: true, deleteDirs: true
}
}
} }
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment