@@ -24,172 +24,40 @@ concurrency:
2424 cancel-in-progress : true
2525
2626jobs :
27+ matrix-prep-config :
28+ runs-on : ubuntu-latest
29+ steps :
30+ - uses : actions/checkout@v3
31+ with :
32+ fetch-depth : 1
33+ - id : generate-test-matrix
34+ run : |
35+ # This script is used to generate the list of tests to be included in the test matrix.
36+ TEST_PER_JOB=30
37+ matrix="'"
38+ count=0
39+ for file in $(find test/integration/ -name "*.py" | grep -v "__init__.py" | sed 's/test\/integration\///' | sed 's/.py$//'); do
40+ if [ $((count%TEST_PER_JOB)) == 0 ] && [ $count != 0 ]; then
41+ matrix="$matrix','"
42+ elif [ $count != 0 ]; then
43+ matrix="$matrix|"
44+ fi
45+ matrix="$matrix$file"
46+ count=$((count+1))
47+ done
48+ matrix="$matrix'"
49+ echo "tests=[$matrix]" >> $GITHUB_OUTPUT
50+ outputs :
51+ tests : ${{ steps.generate-test-matrix.outputs.tests }}
2752 build :
28- if : github.repository == 'apache/cloudstack'
2953 runs-on : ubuntu-22.04
54+ needs :
55+ - matrix-prep-config
3056
3157 strategy :
3258 fail-fast : false
3359 matrix :
34- tests : [ "smoke/test_accounts
35- smoke/test_affinity_groups
36- smoke/test_affinity_groups_projects
37- smoke/test_annotations
38- smoke/test_async_job
39- smoke/test_attach_multiple_volumes
40- smoke/test_backup_recovery_dummy
41- smoke/test_certauthority_root
42- smoke/test_console_endpoint
43- smoke/test_create_list_domain_account_project
44- smoke/test_create_network
45- smoke/test_deploy_vgpu_enabled_vm
46- smoke/test_deploy_virtio_scsi_vm
47- smoke/test_deploy_vm_extra_config_data
48- smoke/test_deploy_vm_iso
49- smoke/test_deploy_vm_iso_uefi
50- smoke/test_deploy_vm_root_resize
51- smoke/test_deploy_vm_with_userdata
52- smoke/test_deploy_vms_in_parallel
53- smoke/test_deploy_vms_with_varied_deploymentplanners
54- smoke/test_diagnostics
55- smoke/test_direct_download
56- smoke/test_disk_offerings
57- smoke/test_disk_provisioning_types
58- smoke/test_domain_disk_offerings
59- smoke/test_domain_network_offerings
60- smoke/test_domain_service_offerings
61- smoke/test_domain_vpc_offerings",
62- " smoke/test_dynamicroles
63- smoke/test_enable_account_settings_for_domain
64- smoke/test_enable_role_based_users_in_projects
65- smoke/test_events_resource
66- smoke/test_global_settings
67- smoke/test_guest_vlan_range
68- smoke/test_host_maintenance
69- smoke/test_hostha_kvm
70- smoke/test_hostha_simulator
71- smoke/test_internal_lb
72- smoke/test_ipv6_infra
73- smoke/test_iso
74- smoke/test_kubernetes_clusters
75- smoke/test_kubernetes_supported_versions
76- smoke/test_list_ids_parameter
77- smoke/test_loadbalance
78- smoke/test_login
79- smoke/test_2fa
80- smoke/test_metrics_api
81- smoke/test_migration
82- smoke/test_multipleips_per_nic
83- smoke/test_nested_virtualization
84- smoke/test_set_sourcenat" ,
85- " smoke/test_network
86- smoke/test_network_acl
87- smoke/test_network_ipv6
88- smoke/test_network_permissions
89- smoke/test_nic
90- smoke/test_nic_adapter_type
91- smoke/test_non_contigiousvlan
92- smoke/test_outofbandmanagement
93- smoke/test_outofbandmanagement_nestedplugin
94- smoke/test_over_provisioning
95- smoke/test_password_server
96- smoke/test_persistent_network
97- smoke/test_portable_publicip
98- smoke/test_portforwardingrules
99- smoke/test_primary_storage
100- smoke/test_privategw_acl
101- smoke/test_privategw_acl_ovs_gre
102- smoke/test_projects
103- smoke/test_public_ip_range
104- smoke/test_pvlan
105- smoke/test_regions
106- smoke/test_register_userdata
107- smoke/test_reset_configuration_settings
108- smoke/test_reset_vm_on_reboot
109- smoke/test_resource_accounting
110- smoke/test_resource_detail" ,
111- " smoke/test_router_dhcphosts
112- smoke/test_router_dns
113- smoke/test_router_dnsservice
114- smoke/test_routers
115- smoke/test_routers_iptables_default_policy
116- smoke/test_routers_network_ops
117- smoke/test_scale_vm
118- smoke/test_secondary_storage
119- smoke/test_service_offerings
120- smoke/test_snapshots
121- smoke/test_ssvm
122- smoke/test_staticroles
123- smoke/test_templates
124- smoke/test_update_security_group
125- smoke/test_usage
126- smoke/test_usage_events
127- smoke/test_vm_deployment_planner
128- smoke/test_vm_schedule
129- smoke/test_vm_life_cycle
130- smoke/test_vm_lifecycle_unmanage_import
131- smoke/test_vm_snapshot_kvm
132- smoke/test_vm_snapshots
133- smoke/test_volumes
134- smoke/test_vpc_ipv6
135- smoke/test_vpc_redundant
136- smoke/test_vpc_router_nics
137- smoke/test_vpc_vpn" ,
138- " component/find_hosts_for_migration
139- component/test_acl_isolatednetwork
140- component/test_acl_isolatednetwork_delete
141- component/test_acl_listsnapshot" ,
142- " component/test_acl_listvm
143- component/test_acl_listvolume" ,
144- " component/test_acl_sharednetwork
145- component/test_acl_sharednetwork_deployVM-impersonation
146- component/test_user_private_gateway
147- component/test_user_shared_network" ,
148- " component/test_affinity_groups_projects
149- component/test_allocation_states
150- component/test_assign_vm" ,
151- " component/test_concurrent_snapshots_limit
152- component/test_cpu_domain_limits
153- component/test_cpu_limits
154- component/test_cpu_max_limits
155- component/test_cpu_project_limits
156- component/test_deploy_vm_userdata_multi_nic" ,
157- " component/test_egress_fw_rules
158- component/test_invalid_gw_nm
159- component/test_ip_reservation" ,
160- " component/test_lb_secondary_ip
161- component/test_list_nics
162- component/test_list_pod
163- component/test_memory_limits" ,
164- " component/test_mm_domain_limits
165- component/test_mm_max_limits
166- component/test_mm_project_limits
167- component/test_network_offering
168- component/test_non_contiguous_vlan" ,
169- " component/test_persistent_networks
170- component/test_project_configs
171- component/test_project_limits
172- component/test_project_resources" ,
173- " component/test_project_usage
174- component/test_protocol_number_security_group
175- component/test_public_ip
176- component/test_resource_limits" ,
177- " component/test_regions_accounts
178- component/test_routers
179- component/test_snapshots
180- component/test_stopped_vm
181- component/test_tags
182- component/test_templates
183- component/test_updateResourceCount
184- component/test_update_vm" ,
185- " component/test_volumes
186- component/test_vpc
187- component/test_vpc_distributed_routing_offering
188- component/test_vpc_network
189- component/test_vpc_offerings
190- component/test_vpc_routers
191- component/test_vpn_users" ,
192- " component/test_vpc_network_lbrules" ]
60+ tests : ${{ fromJSON(needs.matrix-prep-config.outputs.tests) }}
19361
19462 steps :
19563 - uses : actions/checkout@v3
@@ -282,7 +150,7 @@ jobs:
282150 TESTS="${{ matrix.tests }}"
283151 echo "Tests in this job: $TESTS"
284152
285- TESTS=($(echo $TESTS | tr -d '\n' | tr -s ' '))
153+ TESTS=($(echo $TESTS | tr '|' '\n' | tr -s ' '))
286154 for suite in "${TESTS[@]}" ; do
287155 echo -e "Currently running test: $suite\n"
288156 time nosetests-3.4 --with-xunit --xunit-file=integration-test-results/$suite.xml --with-marvin --marvin-config=setup/dev/advanced.cfg test/integration/$suite.py -s -a tags=advanced,required_hardware=false --zone=Sandbox-simulator --hypervisor=simulator || true ;
0 commit comments