mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-31 19:08:01 +00:00 
			
		
		
		
	Add CIG189H to performance workflow and add pass/fail criteria for performance testing
This commit is contained in:
		
							
								
								
									
										235
									
								
								.github/workflows/performance.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										235
									
								
								.github/workflows/performance.yml
									
									
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ on: | ||||
|         description: "revision of the Open Wifi Helm chart" | ||||
|       ap_models: | ||||
|         required: true | ||||
|         default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111, edgecore_oap103, edgecore_eap112" | ||||
|         default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111, edgecore_oap103, edgecore_eap112,cig_wf189h" | ||||
|         description: "the AP models to test" | ||||
|       ap_version: | ||||
|         required: true | ||||
| @@ -97,7 +97,7 @@ jobs: | ||||
|           elif [[ "$DOW" -eq "4" ]]; then | ||||
|             AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820' }}" | ||||
|           else | ||||
|             AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101,edgecore_oap103,edgecore_eap112' }}" | ||||
|             AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101,edgecore_oap103,edgecore_eap112,cig_wf189h' }}" | ||||
|           fi | ||||
|           echo "List of AP models to test - $AP_MODELS" | ||||
|           AP_MODELS=$(echo $AP_MODELS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g') | ||||
| @@ -3337,12 +3337,239 @@ jobs: | ||||
|       - name: show sec logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsec | ||||
|   test-cig-wf189h: | ||||
|     needs: [ "vars", "build"] | ||||
|     runs-on: [ self-hosted, small ] | ||||
|     timeout-minutes: 1440 | ||||
|     if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf189h')" | ||||
|     env: | ||||
|  | ||||
|       AP_MODEL: cig_wf189h | ||||
|     steps: | ||||
|       - name: Set AP model output | ||||
|         id: ap_model | ||||
|         run: | | ||||
|           echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT | ||||
|  | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: "3.8" | ||||
|  | ||||
|  | ||||
|       # TODO WIFI-7839 delete when issue is resolved on AWS CLI side | ||||
|       - name: install kubectl | ||||
|         run: | | ||||
|           curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl" | ||||
|           sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl | ||||
|  | ||||
|       - name: install aws CLI tool | ||||
|         run: | | ||||
|           curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" | ||||
|           unzip awscliv2.zip | ||||
|           sudo ./aws/install | ||||
|  | ||||
|       - name: get EKS access credentials | ||||
|         run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} | ||||
|  | ||||
|       - name: prepare namespace name | ||||
|         id: namespace | ||||
|         run: | | ||||
|           NAMESPACE="performance-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')" | ||||
|           echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT | ||||
|  | ||||
|       - name: prepare configuration | ||||
|         run: | | ||||
|           cat << EOF > lab_info.json | ||||
|           ${{ secrets.LAB_INFO_JSON }} | ||||
|           EOF | ||||
|  | ||||
|  | ||||
|       - name: run tests dataplane_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dataplane_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-dtt | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and dataplane_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }}" | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dataplane_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-dtt --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-dtt $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dtt | ||||
|  | ||||
|       - name: run tests wifi_capacity_ax_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_ax_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-wca | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and wifi_capacity_ax_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"' | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-wifi_capacity_ax_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-wca --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-wca $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-wca | ||||
|  | ||||
|       - name: run tests wifi_capacity_be_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_be_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-ssdbt | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and wifi_capacity_be_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }}" | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-wifi_capacity_be_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-ssdbt --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-ssdbt $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-ssdbt | ||||
|  | ||||
|       - name: run tests ax_client_scale_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'ax_client_scale_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-wct | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and ax_client_scale_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }}" | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-ax_client_scale_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-wct --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-wct $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-wct | ||||
|  | ||||
|       - name: run tests be_client_scale_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'be_client_scale_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-wct | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and be_client_scale_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }}" | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-be_client_scale_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-wct --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-wct $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-wct | ||||
|  | ||||
|       - name: run tests multi_band_tests | ||||
|         uses: ./.github/actions/run-tests | ||||
|         if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_band_tests')" | ||||
|         with: | ||||
|           namespace: ${{ steps.namespace.outputs.name }}-wct | ||||
|           testbed: basic-4 | ||||
|           marker_expression: "performance and multi_band_tests" | ||||
|           configuration_file: "./lab_info.json" | ||||
|           testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | ||||
|           additional_args: "-o firmware=${{ needs.vars.outputs.ap_version }} ${{ needs.vars.outputs.additional_arguments }}" | ||||
|           allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-multi_band_tests" | ||||
|           dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | ||||
|  | ||||
|       # necessary because if conditionals in composite actions are currently not respected | ||||
|       - name: get tests logs | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-wct --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | ||||
|           kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-wct $podname || true | ||||
|  | ||||
|       - name: delete namespace | ||||
|         if: always() | ||||
|         continue-on-error: true | ||||
|         run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-wct | ||||
|  | ||||
|       - name: show gw logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owgw | ||||
|  | ||||
|       - name: show fms logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owfms | ||||
|  | ||||
|       - name: show prov logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owprov | ||||
|  | ||||
|       - name: show analytics logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owanalytics | ||||
|  | ||||
|       - name: show subscription (userportal) logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub | ||||
|  | ||||
|       - name: show sec logs | ||||
|         if: failure() | ||||
|         run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsec | ||||
|   # Save reports | ||||
|   report: | ||||
|     if: "!cancelled()" | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111, test-edgecore-oap103,test-edgecore-eap112] | ||||
|     needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111, test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h] | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
| @@ -3429,7 +3656,7 @@ jobs: | ||||
|  | ||||
|   # Cleanup | ||||
|   cleanup: | ||||
|     needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111, test-edgecore-oap103,test-edgecore-eap112] | ||||
|     needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111, test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h] | ||||
|     runs-on: ubuntu-latest | ||||
|     if: always() | ||||
|     steps: | ||||
|   | ||||
| @@ -643,6 +643,30 @@ | ||||
|         "UDP": null | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|     "edgecore_oap103":{ | ||||
|       "AX":{ | ||||
|       "2G 2x2 20MHz": { | ||||
|         "TCP": 200, | ||||
|         "UDP": 220 | ||||
|       }, | ||||
|       "5G 2x2 80MHz": { | ||||
|         "TCP": 800, | ||||
|         "UDP": 900 | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|     "edgecore_eap112":{ | ||||
|       "AX":{ | ||||
|       "2G 2x2 20MHz": { | ||||
|         "TCP": 200, | ||||
|         "UDP": 220 | ||||
|       }, | ||||
|       "5G 2x2 80MHz": { | ||||
|         "TCP": 800, | ||||
|         "UDP": 900 | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bhargavi-ct
					bhargavi-ct