forked from SUSE/susemanager-ci
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanager-head-qe-build-validation
More file actions
84 lines (82 loc) · 6.74 KB
/
manager-head-qe-build-validation
File metadata and controls
84 lines (82 loc) · 6.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env groovy
node('sumaform-cucumber') {
def minionList = 'sles12sp5_minion, sles12sp5_sshminion, ' +
'sles15sp4_minion, sles15sp4_sshminion, ' +
'sles15sp5_minion, sles15sp5_sshminion, ' +
'sles15sp6_minion, sles15sp6_sshminion, ' +
'sles15sp7_minion, sles15sp7_sshminion, ' +
'sles160_minion, sles160_sshminion, ' +
'salt_migration_minion, ' +
'alma8_minion, alma8_sshminion, alma9_minion, alma9_sshminion, alma10_minion, alma10_sshminion, ' +
'amazon2023_minion, amazon2023_sshminion, ' +
'centos7_minion, centos7_sshminion, ' +
'liberty9_minion, liberty9_sshminion, ' +
// 'liberty10_minion, liberty10_sshminion, ' +
'oracle9_minion, oracle9_sshminion, oracle10_minion, oracle10_sshminion, ' +
'rocky8_minion, rocky8_sshminion, rocky9_minion, rocky9_sshminion, rocky10_minion, rocky10_sshminion, ' +
'ubuntu2204_minion, ubuntu2204_sshminion, ubuntu2404_minion, ubuntu2404_sshminion, ubuntu2604_minion, ubuntu2604_sshminion, ' +
'debian13_minion, debian13_sshminion, ' +
// 'raspios13_minion, raspios13_sshminion, ' +
'opensuse160arm_minion, opensuse160arm_sshminion, ' +
'sles15sp5s390_minion, sles15sp5s390_sshminion, ' +
'slemicro53_minion, slemicro54_minion, slemicro55_minion, ' +
'slmicro60_minion, slmicro61_minion, slmicro62_minion'
properties([
buildDiscarder(logRotator(numToKeepStr: '15', artifactNumToKeepStr: '5')),
disableConcurrentBuilds(),
parameters([
string(name: 'cucumber_gitrepo', defaultValue: 'https://github.com/uyuni-project/uyuni.git', description: 'Testsuite Git Repository'),
string(name: 'cucumber_ref', defaultValue: 'master', description: 'Branch prepared for the MU tested'),
string(name: 'tf_file', defaultValue: 'susemanager-ci/terracumber_config/tf_files/templates/build-validation-single-provider.tf', description: 'Path to the tf file to be used'),
string(name: 'sumaform_gitrepo', defaultValue: 'https://github.com/uyuni-project/sumaform.git', description: 'Sumaform Git Repository'),
string(name: 'sumaform_ref', defaultValue: 'master', description: 'Sumaform Git reference (branch, tag...)'),
string(name: 'deploy_parallelism', defaultValue: '', description: 'Advanced: Define the number of parallel resource operations for the executable binary'),
string(name: 'terracumber_gitrepo', defaultValue: 'https://github.com/uyuni-project/terracumber.git', description: 'Terracumber Git Repository'),
string(name: 'terracumber_ref', defaultValue: 'master', description: 'Terracumber Git ref (branch, tag...)'),
extendedChoice(name: 'minions_to_run', multiSelectDelimiter: ', ', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX', visibleItemCount: 15,
value: minionList,
defaultValue: minionList,
description: 'Node list to run during BV'),
string(name: 'server_container_repository', defaultValue: 'registry.suse.de', description: 'Server container registry'),
string(name: 'proxy_container_repository', defaultValue: 'registry.suse.de', description: 'Proxy container registry'),
string(name: 'server_container_image', defaultValue: '', description: 'Server container image'),
booleanParam(name: 'test_milestone', defaultValue: false, description: 'Mark this checkbox to validate a new milestone (from ToTest) instead of Head (Devel:Galaxy:Main).'),
booleanParam(name: 'use_previous_terraform_state', defaultValue: false, description: 'Use previous Terraform state'),
booleanParam(name: 'must_deploy', defaultValue: true, description: 'Deploy'),
booleanParam(name: 'must_run_core', defaultValue: true, description: 'Run Core features'),
booleanParam(name: 'must_sync', defaultValue: true, description: 'Sync. products and channels'),
booleanParam(name: 'enable_proxy_stages', defaultValue: true, description: 'Run Proxy stages'),
booleanParam(name: 'enable_monitoring_stages', defaultValue: true, description: 'Run Monitoring stages'),
booleanParam(name: 'enable_client_stages', defaultValue: true, description: 'Run Client stages'),
booleanParam(name: 'must_add_MU_repositories', defaultValue: true, description: 'Add MU channels'),
booleanParam(name: 'must_add_non_MU_repositories', defaultValue: true, description: 'Add non MU channels'),
booleanParam(name: 'must_add_keys', defaultValue: true, description: 'Add Activation Keys'),
booleanParam(name: 'must_create_bootstrap_repos', defaultValue: true, description: 'Create bootstrap repositories'),
booleanParam(name: 'must_boot_node', defaultValue: true, description: 'Bootstrap Node'),
booleanParam(name: 'must_run_tests', defaultValue: true, description: 'Run Smoke Tests'),
booleanParam(name: 'must_run_products_and_salt_migration_tests', defaultValue: false, description: 'Run products and Salt migration Tests'),
booleanParam(name: 'must_prepare_retail', defaultValue: false, description: 'Bootstrap build hosts'),
booleanParam(name: 'must_test_retail_terminal', defaultValue: false, description: 'Test retail terminal deployments'),
booleanParam(name: 'confirm_before_continue', defaultValue: false, description: 'Confirmation button between stages'),
booleanParam(name: 'push_new_custom_repositories', defaultValue: false, description: 'Force push new custom repositories for client tools if pipeline rerun after deployment'),
text(name: 'custom_repositories', defaultValue: '{}', description: 'Salt & Client Tools MU Repositories for each client, in json format')
])
])
stage('Checkout pipeline') {
checkout scm
}
def mutableParams = [:] + params
mutableParams.sumaform_backend = "libvirt"
mutableParams.bin_path = "/usr/bin/tofu"
mutableParams.bin_plugins_path = "/usr/bin"
mutableParams.non_MU_channels_tasks_file = "susemanager-ci/jenkins_pipelines/data/non_MU_channels_tasks_52.json"
if (params.test_milestone == true) {
mutableParams.product_version = "head-staging"
} else {
mutableParams.product_version = "head"
}
mutableParams.deployment_tfvars = "susemanager-ci/terracumber_config/tf_files/tfvars/build-validation-tfvars/mlmhead_build_validation_nue.tfvars"
mutableParams.product_version_display = mutableParams.product_version
def pipeline = load "jenkins_pipelines/environments/common/pipeline-build-validation.groovy"
pipeline.run(mutableParams)
}