Files
2026-07-13 13:35:51 +08:00

67 lines
3.5 KiB
Groovy

pipeline {
triggers {
issueCommentTrigger('@dgl-bot .*')
}
agent {
docker {
label 'linux-benchmark-node'
image 'dgllib/dgl-ci-lint'
alwaysPull true
}
}
stages {
stage('Regression Test') {
steps {
checkout scm
script {
def commentTriggerCause = currentBuild.getBuildCauses('org.jenkinsci.plugins.pipeline.github.trigger.IssueCommentCause')
def prOpenTriggerCause = currentBuild.getBuildCauses('jenkins.branch.BranchEventCause')
def realTriggerCause = currentBuild.getBuildCauses()
echo("BUILD CAUSE: ${realTriggerCause.toString()}")
if (commentTriggerCause) {
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 comment = env.GITHUB_COMMENT
def author = env.GITHUB_COMMENT_AUTHOR
def authorized_user = ['VoVAllen', 'BarclayII', 'jermainewang', 'zheng-da', 'mufeili']
def isauthorized = author in authorized_user
def command_lists = comment.split(' ')
def instance_type = command_lists[2].replace('.', "")
if (!isauthorized) {
error("Not authorized to launch regression tests")
}
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}. ")
} else {
// if (prOpenTriggerCause) {
// 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`')
// }
// }
echo('Build was not started by a trigger')
}
// echo("Comment: ${commentTriggerCause.getComment()}")
}
}
post {
failure {
echo '========Regression execution failed========'
}
}
}
}
}