134 lines
5.8 KiB
Groovy
134 lines
5.8 KiB
Groovy
#!groovy
|
|
|
|
node {
|
|
def branch = "main"
|
|
def test_dir = "${env.TEST_DIRECTORY_LIST}".split(',')
|
|
|
|
if ("${env.BRANCH}" != "null" && "${env.BRANCH}" != "") {
|
|
branch = "${env.BRANCH}"
|
|
}
|
|
|
|
def repo = scm.userRemoteConfigs
|
|
if ("${env.REPO}" != "null" && "${env.REPO}" != "") {
|
|
repo = [
|
|
[url: "${env.REPO}"]
|
|
]
|
|
}
|
|
def timeout = "60m"
|
|
if ("${env.TIMEOUT}" != "null" && "${env.TIMEOUT}" != "") {
|
|
timeout = "${env.TIMEOUT}"
|
|
}
|
|
wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm', 'defaultFg': 2, 'defaultBg': 1]) {
|
|
withFolderProperties {
|
|
paramsMap = []
|
|
params.each {
|
|
if (it.value && it.value.trim() != "") {
|
|
paramsMap << "$it.key=$it.value"
|
|
}
|
|
}
|
|
withEnv(paramsMap) {
|
|
stage('Checkout') {
|
|
deleteDir()
|
|
checkout([
|
|
$class: 'GitSCM',
|
|
branches: [
|
|
[name: "*/${branch}"]
|
|
],
|
|
extensions: scm.extensions + [
|
|
[$class: 'CleanCheckout']
|
|
],
|
|
userRemoteConfigs: repo
|
|
])
|
|
}
|
|
dir("./") {
|
|
stage('Run Parallel Jobs') {
|
|
echo "Running ${test_dir.size()} tests: ${test_dir}"
|
|
def jobs = [:]
|
|
|
|
test_dir.each { test_name ->
|
|
def actual_testdir_name = test_name
|
|
def job_aws_ssh_key_name = "${AWS_SSH_KEY_NAME}"
|
|
def job_aws_ssh_pem_key = "${AWS_SSH_PEM_KEY}"
|
|
|
|
if (test_name == "docker_cri" || test_name == "validatecluster_arm") {
|
|
actual_testdir_name = "validatecluster"
|
|
}
|
|
|
|
if (test_name.contains("restartservice")) {
|
|
actual_testdir_name = "restartservice"
|
|
}
|
|
|
|
def install_params = [
|
|
string(name: 'TEST_ARGS', value: "${TEST_ARGS}"),
|
|
string(name: 'REPO', value: "${REPO}"),
|
|
string(name: 'BRANCH', value: "${BRANCH}"),
|
|
string(name: 'PRODUCT_NAME', value: "${PRODUCT_NAME}"),
|
|
string(name: 'INSTALL_VERSION', value: "${INSTALL_VERSION}"),
|
|
string(name: 'INSTALL_MODE', value: "${INSTALL_MODE}"),
|
|
string(name: 'INSTALL_CHANNEL', value: "${INSTALL_CHANNEL}"),
|
|
string(name: 'HOSTNAME_PREFIX', value: "${HOSTNAME_PREFIX}"),
|
|
string(name: 'TEST_DIRECTORY', value: actual_testdir_name),
|
|
string(name: 'AWS_SSH_KEY_NAME', value: job_aws_ssh_key_name),
|
|
string(name: 'AWS_SSH_PEM_KEY', value: job_aws_ssh_pem_key),
|
|
string(name: 'REPORT_TO_QASE', value: "${REPORT_TO_QASE}"),
|
|
string(name: 'QASE_PROJECT_ID', value: "${QASE_PROJECT_ID}"),
|
|
string(name: 'QASE_RUN_ID', value: "${QASE_RUN_ID}"),
|
|
]
|
|
|
|
switch(test_name) {
|
|
case "validatecluster":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_validate_cluster", parameters: install_params }
|
|
break
|
|
case "validatecluster_arm":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_validate_cluster_arm", parameters: install_params }
|
|
break
|
|
case "killalluninstall":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_kill_all_uninstall", parameters: install_params }
|
|
break
|
|
case "killalluninstall_arm":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_kill_all_uninstall_arm", parameters: install_params }
|
|
break
|
|
case "docker_cri":
|
|
jobs[test_name] = { build job: "k3s_docker_cri", parameters: install_params }
|
|
break
|
|
case "restartservice":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_restart_service", parameters: install_params }
|
|
break
|
|
case "restartservice_splitroles":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_restart_service_splitroles", parameters: install_params }
|
|
break
|
|
case "rebootinstances":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_reboot_instances", parameters: install_params }
|
|
break
|
|
case "dualstack":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_dual_stack", parameters: install_params }
|
|
break
|
|
case "ipv6only":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_ipv6_only", parameters: install_params }
|
|
break
|
|
case "certrotate":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_cert_rotate", parameters: install_params }
|
|
break
|
|
case "secretsencrypt":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_secrets_encryption", parameters: install_params }
|
|
break
|
|
case "clusterreset":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_cluster_reset", parameters: install_params }
|
|
break
|
|
case "clusterrestore":
|
|
jobs[test_name] = { build job: "${env.PRODUCT_NAME}_cluster_restore", parameters: install_params }
|
|
break
|
|
case "mixedoscluster":
|
|
jobs[test_name] = { build job: "rke2_windows_agent", parameters: install_params }
|
|
break
|
|
} // switch case
|
|
} // for each test_dir loop
|
|
|
|
parallel jobs
|
|
} // stage run parallel jobs
|
|
} // dir
|
|
} // withEnv
|
|
} // withFolderProperties
|
|
} // wrap
|
|
} // node
|