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()