go.ligato.io/vpp-agent/v3@v3.5.0/tests/jenkins/jobs5/script.py (about) 1 #find /root/vpp-agent/tests/robot/suites/ -name *.robot -type f > list_of_all_robot_tests 2 # todo : slovak rozdel_na_pozicii 3 # todo : input parameter - to help divide the tests to two group, even non evenly 4 # todo : define agent (declarative) or node (scripted) ... preferably ARM64 node 5 import sys 6 import os 7 import string 8 import datetime 9 10 print(sys.argv[1]) 11 rozdel_na_pozicii=int(sys.argv[1]) 12 13 running_at_arm64_node_I='' 14 running_at_arm64_node_I=running_at_arm64_node_I+' '+'stage \'test\'\n' 15 running_at_arm64_node_II='' 16 running_at_arm64_node_II=running_at_arm64_node_II+' '+'stage \'test\'\n' 17 running_at_arm64_node_I_IPv4='' 18 running_at_arm64_node_I_IPv4=running_at_arm64_node_I_IPv4+' '+'stage \'test\'\n' 19 running_at_arm64_node_II_IPv6='' 20 running_at_arm64_node_II_IPv6=running_at_arm64_node_II_IPv6+' '+'stage \'test\'\n' 21 running_at_arm64_node_II_OTHER='' 22 running_at_arm64_node_II_OTHER=running_at_arm64_node_II_OTHER+' '+'stage \'test\'\n' 23 running_at_arm64_node_I_SFCIPv4='' 24 running_at_arm64_node_I_SFCIPv4=running_at_arm64_node_I_SFCIPv4+' '+'stage \'test\'\n' 25 running_at_arm64_node_II_SFCIPv6='' 26 running_at_arm64_node_II_SFCIPv6=running_at_arm64_node_II_SFCIPv6+' '+'stage \'test\'\n' 27 28 jenkins_project='' 29 jenkins_project=jenkins_project+'- project:\n' 30 jenkins_project=jenkins_project+' name: ligato/vpp-agent all tests on arm64\n' 31 jenkins_project=jenkins_project+' jobs:\n' 32 with open("list_of_all_robot_tests") as f: 33 for idx,i in enumerate(f): 34 print(i) 35 36 if (idx == rozdel_na_pozicii): 37 print(str(idx) + '--------------------------') 38 39 with open(i[:-1]) as myfile: 40 if 'ExpectedFailure' in myfile.read(): 41 is_expected_failure=True 42 else: 43 is_expected_failure=False 44 45 print(os.path.basename(i[:-7])) 46 x = (i,'') 47 while True: 48 odloz=x 49 x=os.path.split(x[0]) 50 if (x[1] == 'suites'): 51 break 52 else: 53 odloz2=odloz 54 55 print(odloz2[0]) 56 print(os.stat(odloz2[0]).st_ino) 57 jenkins_project=jenkins_project+" - '05{inode_of_folder}_{name_of_test}_job':\n" 58 jenkins_project=jenkins_project+' HOWTOBUILD_INCLTAGPRESENT: ' + ( '--include ExpectedFailure' if is_expected_failure else '\' \'' ) + '\n' 59 jenkins_project=jenkins_project+' HOWTOBUILD_EXCLTAGPRESENT: ' + ( '--exclude ExpectedFailure' if is_expected_failure else '\' \'' ) + '\n' 60 jenkins_project=jenkins_project+' inode_of_folder: ' + format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") + '\n' 61 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 62 jenkins_project=jenkins_project+' name_of_test: ' + os.path.basename(i[:-7]) + '\n' 63 jenkins_project=jenkins_project+' path_to_test: ' + i[:-1] + '\n' 64 jenkins_project=jenkins_project+' local_variables_file: ' + ( 'arm64_local' if idx < rozdel_na_pozicii else 'arm64_II_local' ) + '\n' 65 # following row is enough ti control the ARM64 node where test is going to be executed 66 jenkins_project=jenkins_project+' arm64_node: ' + ( '147.75.72.194' if idx < rozdel_na_pozicii else '147.75.98.202' ) + '\n' 67 #I will divide the test to pipelines according IPv4/IPv6 68 groupoftests=os.path.basename(os.path.normpath(odloz2[0])).upper() 69 if (groupoftests=='CRUD') or (groupoftests=='TRAFFIC'): 70 running_at_arm64_node_I_IPv4=running_at_arm64_node_I_IPv4+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 71 elif (groupoftests=='CRUDIPV6') or (groupoftests=='TRAFFICIPV6'): 72 running_at_arm64_node_II_IPv6=running_at_arm64_node_II_IPv6+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 73 elif (groupoftests=='SFC'): 74 running_at_arm64_node_I_SFCIPv4=running_at_arm64_node_I_SFCIPv4+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 75 elif (groupoftests=='SFCIPV6'): 76 running_at_arm64_node_II_SFCIPv6=running_at_arm64_node_II_SFCIPv6+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 77 else: 78 running_at_arm64_node_II_OTHER=running_at_arm64_node_II_OTHER+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 79 80 81 if idx < rozdel_na_pozicii: 82 running_at_arm64_node_I=running_at_arm64_node_I+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 83 else: 84 #running_at_arm64_node_II=running_at_arm64_node_II+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', propagate: false\n' 85 running_at_arm64_node_II=running_at_arm64_node_II+' build job: \'05'+ format(os.path.basename(os.path.normpath(odloz2[0])).upper(), "_<11s") +'_'+ os.path.basename(i[:-7]) +'_job\', parameters: [string(name: \'HOWTOBUILD\', value: "${{HOWTOBUILD}}"), string(name: \'LOGLEVEL\', value: "${{LOGLEVEL}}"), string(name: \'VARIABLES_FILE\', value: "${{VARIABLES_FILE}}"), string(name: \'DOCKER_HOST_IP\', value: "${{DOCKER_HOST_IP}}"), string(name: \'IMAGE_NAME\', value: "${{IMAGE_NAME}}")], propagate: false, quietPeriod: 60\n' 86 87 88 89 90 jenkins_project=jenkins_project+' - \'04{name_of_pipeline}_pipeline\':\n' 91 jenkins_project=jenkins_project+' name_of_pipeline: IPv4_arm64_node_I\n' 92 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 93 jenkins_project=jenkins_project+' local_variables_file: \'arm64_local\'\n' 94 jenkins_project=jenkins_project+' arm64_node: \'147.75.72.194\'\n' 95 jenkins_project=jenkins_project+' list_of_jenkins_jobs: |-\n' +running_at_arm64_node_I_IPv4+ ' \n' 96 97 jenkins_project=jenkins_project+' - \'04{name_of_pipeline}_pipeline\':\n' 98 jenkins_project=jenkins_project+' name_of_pipeline: IPv6_arm64_node_II\n' 99 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 100 jenkins_project=jenkins_project+' local_variables_file: \'arm64_II_local\'\n' 101 jenkins_project=jenkins_project+' arm64_node: \'147.75.98.202\'\n' 102 jenkins_project=jenkins_project+' list_of_jenkins_jobs: |-\n' +running_at_arm64_node_II_IPv6+ ' \n' 103 104 jenkins_project=jenkins_project+' - \'04{name_of_pipeline}_pipeline\':\n' 105 jenkins_project=jenkins_project+' name_of_pipeline: SFCIPv4_arm64_node_I\n' 106 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 107 jenkins_project=jenkins_project+' local_variables_file: \'arm64_local\'\n' 108 jenkins_project=jenkins_project+' arm64_node: \'147.75.72.194\'\n' 109 jenkins_project=jenkins_project+' list_of_jenkins_jobs: |-\n' +running_at_arm64_node_I_SFCIPv4+ ' \n' 110 111 jenkins_project=jenkins_project+' - \'04{name_of_pipeline}_pipeline\':\n' 112 jenkins_project=jenkins_project+' name_of_pipeline: SFCIPv6_arm64_node_II\n' 113 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 114 jenkins_project=jenkins_project+' local_variables_file: \'arm64_II_local\'\n' 115 jenkins_project=jenkins_project+' arm64_node: \'147.75.98.202\'\n' 116 jenkins_project=jenkins_project+' list_of_jenkins_jobs: |-\n' +running_at_arm64_node_II_SFCIPv6+ ' \n' 117 118 jenkins_project=jenkins_project+' - \'04{name_of_pipeline}_pipeline\':\n' 119 jenkins_project=jenkins_project+' name_of_pipeline: OTHER_arm64_node_II\n' 120 jenkins_project=jenkins_project+' date_of_jjb_generation: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + '\n' 121 jenkins_project=jenkins_project+' local_variables_file: \'arm64_II_local\'\n' 122 jenkins_project=jenkins_project+' arm64_node: \'147.75.98.202\'\n' 123 jenkins_project=jenkins_project+' list_of_jenkins_jobs: |-\n' +running_at_arm64_node_II_OTHER+ ' \n' 124 125 g = open('p.yaml', 'w') 126 g.write(jenkins_project) 127 g.close() 128 129 #g = open('r1', 'w') 130 #g.write(running_at_arm64_node_I) 131 #g.close() 132 133 #g = open('r2', 'w') 134 #g.write(running_at_arm64_node_II) 135 #g.close()