diff --git a/.allure-overview/overviews.json b/.allure-overview/overviews.json index d3ca9b2437..edfefee226 100644 --- a/.allure-overview/overviews.json +++ b/.allure-overview/overviews.json @@ -1,9 +1,9 @@ { "sanity": { "OVERVIEW_TITLE": "'OpenWifi sanity results'", - "OVERVIEW_TESTBEDS": ["emplus_wap588m","sonicfi_rap630w-211g","cig_wf672","udaya_a6-id2","sonicfi_rap630c-311g","edgecore_oap103","hfcl_ion4xe","cig_wf189h","sonicfi_rap7110c-341x","edgecore_eap105","edgecore_eap101","edgecore_eap111","yuncore_ax820","edgecore_eap102","sercomm_ap72tip","cig_wf196","edgecore_eap112","yuncore_fap655","cig_wf189","senao_iap4300m","edgecore_eap104"] + "OVERVIEW_TESTBEDS": ["sonicfi_rap630c-311g","udaya_a6-id2","sonicfi_rap630w-211g","edgecore_oap103","cig_wf189","sonicfi_rap7110c-341x","edgecore_eap105","cig_wf672","edgecore_eap101","edgecore_eap111"] }, - "interop": { + "interop": { "OVERVIEW_TITLE": "'OpenWifi interop results'", "OVERVIEW_TESTBEDS": ["pixel-4","galaxy-s9","galaxy-s10","galaxy-s20","iphone-xr","iphone-7","iphone-11","iphone-12"] }, @@ -15,6 +15,6 @@ "performance": { "OVERVIEW_TITLE": "'OpenWifi performance results'", - "OVERVIEW_TESTBEDS": ["senao_iap4300m","cig_wf672","edgecore_eap104","udaya_a6-id2","sonicfi_rap630c-311g","edgecore_oap103","hfcl_ion4xe","cig_wf189h","sonicfi_rap7110c-341x","edgecore_eap105","edgecore_eap101","edgecore_eap111","yuncore_ax820","edgecore_eap102","sercomm_ap72tip","cig_wf196","edgecore_eap112","yuncore_fap655","cig_wf189"] + "OVERVIEW_TESTBEDS": ["sonicfi_rap630c-311g","udaya_a6-id2","sonicfi_rap630w-211g","edgecore_oap103","cig_wf189","sonicfi_rap7110c-341x","edgecore_eap105","cig_wf672","edgecore_eap101","edgecore_eap111"] } } diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 2af999c359..c08a225392 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -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,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672" + default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672,emplus_wap588m,sonicfi_rap630w-211g" description: "the AP models to test" ap_version: required: true @@ -89,7 +89,7 @@ jobs: # choose AP models as per the day and slot if the scheduled run gets triggered else provided. if [[ "$DOW" -eq "1" ]]; then - AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111,senao_iap4300m' }}" + AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111,senao_iap4300m,emplus_wap588m' }}" elif [[ "$DOW" -eq "2" ]]; then AP_MODELS="${{ github.event.inputs.ap_models || 'edgecore_eap104,udaya_a6-id2,edgecore_eap102' }}" elif [[ "$DOW" -eq "3" ]]; then @@ -183,7 +183,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dataplane_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-dtt - testbed: basic-5a + 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 }} @@ -209,7 +209,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_ax_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wca - testbed: basic-5a + 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 }} @@ -235,7 +235,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_be_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-ssdbt - testbed: basic-5a + 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 }} @@ -261,7 +261,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'ax_client_scale_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-5a + 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 }} @@ -287,7 +287,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'be_client_scale_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-5a + 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 }} @@ -313,7 +313,237 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_band_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-5a + 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 + + + test-emplus-wap588m: + needs: ["vars", "build" ] + runs-on: [ self-hosted, small ] + timeout-minutes: 1440 + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'emplus_wap588m')" + env: + + AP_MODEL: emplus_wap588m + 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-1 + 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-1 + 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-1 + 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-1 + 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-1 + 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-1 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 }} @@ -1787,7 +2017,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dataplane_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-dtt - testbed: basic-2a + testbed: basic-1a 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 }} @@ -1813,7 +2043,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_ax_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wca - testbed: basic-2a + testbed: basic-1a 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 }} @@ -1839,7 +2069,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'wifi_capacity_be_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-ssdbt - testbed: basic-2a + testbed: basic-1a 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 }} @@ -1865,7 +2095,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'ax_client_scale_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-2a + testbed: basic-1a 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 }} @@ -1891,7 +2121,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'be_client_scale_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-2a + testbed: basic-1a 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 }} @@ -1917,7 +2147,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_band_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-wct - testbed: basic-2a + testbed: basic-1a 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 }} @@ -3108,6 +3338,235 @@ jobs: if: failure() run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsec + test-sonicfi-rap630w-211g: + needs: [ "vars", "build", "test-cig-wf189h" ] + runs-on: [ self-hosted, small ] + timeout-minutes: 1440 + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'sonicfi_rap630w-211g')" + env: + AP_MODEL: sonicfi_rap630w-211g + 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-2a + 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-2a + 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-2a + 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-2a + 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-2a + 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-2a + 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 + test-edgecore-oap103: needs: [ "vars", "build" ] runs-on: [ self-hosted, small ] @@ -4027,7 +4486,7 @@ jobs: 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, test-cig-wf189h, test-senao-iap4300m, test-cig-wf672] + 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, test-senao-iap4300m, test-cig-wf672, test-emplus-wap588m, test-sonicfi-rap630w-211g] strategy: fail-fast: false matrix: @@ -4114,7 +4573,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, test-cig-wf189h, test-senao-iap4300m, test-cig-wf672] + 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, test-senao-iap4300m, test-cig-wf672, test-emplus-wap588m, test-sonicfi-rap630w-211g] runs-on: ubuntu-latest if: always() steps: diff --git a/.github/workflows/quali.yml b/.github/workflows/quali.yml index 2c238584a8..7c8d2eff0e 100644 --- a/.github/workflows/quali.yml +++ b/.github/workflows/quali.yml @@ -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,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672" + default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672,emplus_wap588m,sonicfi_rap630w-211g,cig_wf189" description: "the AP models to test" ap_version: required: true @@ -360,7 +360,7 @@ jobs: uses: ./.github/actions/run-tests with: namespace: ${{ steps.namespace.outputs.name }} - testbed: basic-5a + testbed: basic-4 marker_expression: "${{ needs.vars.outputs.marker_expression }}" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -445,6 +445,95 @@ jobs: EOF + - name: run tests + uses: ./.github/actions/run-tests + with: + namespace: ${{ steps.namespace.outputs.name }} + testbed: basic-1a + marker_expression: "${{ needs.vars.outputs.marker_expression }}" + 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 }}" + 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 }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }} + + - name: show gw logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owgw + + - name: show fms logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owfms + + - name: show prov logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owprov + + - name: show analytics logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owanalytics + + - name: show subscription (userportal) logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsub + + - name: show sec logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsec + + test-sonicfi-rap630w-211g: + needs: [ "vars", "build" ] + runs-on: ubuntu-latest + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'sonicfi_rap630w-211g')" + env: + AP_MODEL: sonicfi_rap630w-211g + 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: get EKS access credentials + run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} + + - name: prepare namespace name + id: namespace + run: | + NAMESPACE="testing-${{ 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 uses: ./.github/actions/run-tests with: @@ -1208,6 +1297,95 @@ jobs: if: failure() run: kubectl -n openwifi-qa01 logs deployment/owsec + test-emplus-wap588m: + needs: [ "vars", "build" ] + runs-on: ubuntu-latest + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'emplus_wap588m')" + env: + AP_MODEL: emplus_wap588m + 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: get EKS access credentials + run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} + + - name: prepare namespace name + id: namespace + run: | + NAMESPACE="testing-${{ 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 + uses: ./.github/actions/run-tests + with: + namespace: ${{ steps.namespace.outputs.name }} + testbed: basic-1 + marker_expression: "${{ needs.vars.outputs.marker_expression }}" + 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 }}" + 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 }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }} + + - name: show gw logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owgw + + - name: show fms logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owfms + + - name: show prov logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owprov + + - name: show analytics logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owanalytics + + - name: show subscription (userportal) logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsub + + - name: show sec logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsec + test-udaya-a6-id2: needs: [ "vars", "build" ] runs-on: ubuntu-latest @@ -1656,7 +1834,7 @@ jobs: 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,test-cig-wf189h,test-senao-iap4300m,test-cig-wf672] + 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,test-senao-iap4300m,test-cig-wf672,test-emplus-wap588m,test-sonicfi-rap630w-211g] strategy: fail-fast: false matrix: @@ -1707,7 +1885,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,test-cig-wf189h,test-senao-iap4300m,test-cig-wf672] + 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,test-senao-iap4300m,test-cig-wf672,test-emplus-wap588m,test-sonicfi-rap630w-211g] runs-on: ubuntu-latest if: always() steps: diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 751d3d2a91..059f4fcedd 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -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,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672" + default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,cig_wf189h,senao_iap4300m,udaya_a6-id2,cig_wf672,emplus_wap588m,sonicfi_rap630w-211g" description: "the AP models to test" ap_version: required: true @@ -2874,7 +2874,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dfs_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-dfs - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and dfs_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -2900,7 +2900,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-schema-validation - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and schema_validation_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -2926,7 +2926,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_connectivity_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-client-connect - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and client_connectivity_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -2952,7 +2952,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-multipsk - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and multi_psk_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -2978,7 +2978,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-rate-limiting - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and rate_limiting_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3004,7 +3004,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_with_radius_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-rate-limit-rad - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and rate_limiting_with_radius_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3030,7 +3030,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dynamic_vlan_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-dynamic-vlan - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and dynamic_vlan_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3056,7 +3056,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_vlan_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-multi-vlan - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and multi_vlan_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3082,7 +3082,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'strict_forwarding_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-strict-forwarding - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and strict_forwarding_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3108,7 +3108,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'advanced_captive_portal_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-captive-portal - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and advanced_captive_portal_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3134,7 +3134,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'firmware_upgrade_downgrade')" with: namespace: ${{ steps.namespace.outputs.name }}-fwd - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and firmware_upgrade_downgrade" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -3160,7 +3160,7 @@ jobs: if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'asb_tests')" with: namespace: ${{ steps.namespace.outputs.name }}-asb - testbed: basic-2a + testbed: basic-1a marker_expression: "ow_regression_lf and asb_tests" configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} @@ -4736,6 +4736,774 @@ jobs: if: failure() run: kubectl -n openwifi-qa01 logs deployment/owsec + test-emplus-wap588m: + needs: [ "vars", "build" ] + runs-on: [ self-hosted, small ] + timeout-minutes: 1440 + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'emplus_wap588m')" + env: + AP_MODEL: emplus_wap588m + 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="regression-${{ 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 dfs tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dfs_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-dfs + testbed: basic-1 + marker_expression: "ow_regression_lf and dfs_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 }}-dfs_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 }}-dfs --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-dfs $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs + + - name: run schema_validation tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-schema-validation + testbed: basic-1 + marker_expression: "ow_regression_lf and schema_validation_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 }} ${{ github.event.inputs.additional_args }}" + allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_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 }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation + + - name: run client_connectivity tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_connectivity_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-client-connect + testbed: basic-1 + marker_expression: "ow_regression_lf and client_connectivity_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 }} ${{ github.event.inputs.additional_args }}" + allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-client_connectivity_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 }}-client-connect --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-client-connect $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-client-connect + + - name: run multipsk tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-multipsk + testbed: basic-1 + marker_expression: "ow_regression_lf and multi_psk_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_psk_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 }}-multipsk --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-multipsk $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-multipsk + + - name: run rate_limiting tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-rate-limiting + testbed: basic-1 + marker_expression: "ow_regression_lf and rate_limiting_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 }}-rate_limiting_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 }}-rate-limiting --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-rate-limiting $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-rate-limiting + + - name: run rate_limiting_with_radius tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_with_radius_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-rate-limiting-radius + testbed: basic-1 + marker_expression: "ow_regression_lf and rate_limiting_with_radius_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 }}-rate_limiting_with_radius_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 }}-rate-limiting-radius --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-rate-limiting-radius $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-rate-limiting-radius + + - name: run dynamic_vlan tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dynamic_vlan_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-dynamic-vlan + testbed: basic-1 + marker_expression: "ow_regression_lf and dynamic_vlan_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 }}-dynamic_vlan_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 }}-dynamic-vlan --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-dynamic-vlan $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dynamic-vlan + + - name: run multi_vlan tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_vlan_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-multi-vlan + testbed: basic-1 + marker_expression: "ow_regression_lf and multi_vlan_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_vlan_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 }}-multi-vlan --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-multi-vlan $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-multi-vlan + + - name: run strict forwarding tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'strict_forwarding_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-strict-forwarding + testbed: basic-1 + marker_expression: "ow_regression_lf and strict_forwarding_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 }}-strict_forwarding_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 }}-strict-forwarding --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-strict-forwarding $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-strict-forwarding + + - name: run captive portal tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'advanced_captive_portal_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-captive-portal + testbed: basic-1 + marker_expression: "ow_regression_lf and advanced_captive_portal_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 }}-advanced_captive_portal_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 }}-captive-portal --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-captive-portal $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-captive-portal + + - name: run firmware upgrade & downgrade tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'firmware_upgrade_downgrade')" + with: + namespace: ${{ steps.namespace.outputs.name }}-fwd + testbed: basic-1 + marker_expression: "ow_regression_lf and firmware_upgrade_downgrade" + 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 }}-firmware_upgrade_downgrade + 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 }}-fwd --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-fwd $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-fwd + + - name: run ap support bundle tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'asb_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-asb + testbed: basic-1 + marker_expression: "ow_regression_lf and asb_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 }}-asb_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 }}-asb --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-asb $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-asb + + - name: show gw logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owgw + + - name: show fms logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owfms + + - name: show prov logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owprov + + - name: show analytics logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owanalytics + + - name: show subscription (userportal) logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsub + + - name: show sec logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsec + + test-sonicfi-rap630w-211g: + needs: [ "vars", "build", "test-yuncore-fap655" ] + runs-on: [ self-hosted, small ] + timeout-minutes: 1440 + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'sonicfi_rap630w-211g')" + env: + AP_MODEL: sonicfi_rap630w-211g + 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="regression-${{ 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 dfs tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dfs_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-dfs + testbed: basic-2a + marker_expression: "ow_regression_lf and dfs_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 }}-dfs_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 }}-dfs --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-dfs $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dfs + + - name: run schema_validation tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'schema_validation_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-schema-validation + testbed: basic-2a + marker_expression: "ow_regression_lf and schema_validation_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 }} ${{ github.event.inputs.additional_args }}" + allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-schema_validation_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 }}-schema-validation --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-schema-validation $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-schema-validation + + - name: run client_connectivity tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_connectivity_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-client-connect + testbed: basic-2a + marker_expression: "ow_regression_lf and client_connectivity_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 }} ${{ github.event.inputs.additional_args }}" + allure_results_artifact_name: allure-results-${{ steps.ap_model.outputs.model }}-client_connectivity_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 }}-client-connect --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-client-connect $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-client-connect + + - name: run multipsk tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_psk_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-multipsk + testbed: basic-2a + marker_expression: "ow_regression_lf and multi_psk_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_psk_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 }}-multipsk --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-multipsk $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-multipsk + + - name: run rate_limiting tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-rate-limiting + testbed: basic-2a + marker_expression: "ow_regression_lf and rate_limiting_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 }}-rate_limiting_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 }}-rate-limiting --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-rate-limiting $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-rate-limiting + + - name: run rate_limiting_with_radius tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'rate_limiting_with_radius_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-rate-limit-rad + testbed: basic-2a + marker_expression: "ow_regression_lf and rate_limiting_with_radius_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 }}-rate_limiting_with_radius_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 }}-rate-limit-rad --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-rate-limit-rad $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-rate-limit-rad + + - name: run dynamic_vlan tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dynamic_vlan_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-dynamic-vlan + testbed: basic-2a + marker_expression: "ow_regression_lf and dynamic_vlan_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 }}-dynamic_vlan_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 }}-dynamic-vlan --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-dynamic-vlan $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-dynamic-vlan + + - name: run multi_vlan tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'multi_vlan_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-multi-vlan + testbed: basic-2a + marker_expression: "ow_regression_lf and multi_vlan_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_vlan_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 }}-multi-vlan --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-multi-vlan $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-multi-vlan + + - name: run strict forwarding tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'strict_forwarding_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-strict-forwarding + testbed: basic-2a + marker_expression: "ow_regression_lf and strict_forwarding_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 }}-strict_forwarding_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 }}-strict-forwarding --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-strict-forwarding $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-strict-forwarding + + - name: run captive portal tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'advanced_captive_portal_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-captive-portal + testbed: basic-2a + marker_expression: "ow_regression_lf and advanced_captive_portal_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 }}-advanced_captive_portal_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 }}-captive-portal --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-captive-portal $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-captive-portal + + - name: run firmware upgrade & downgrade tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'firmware_upgrade_downgrade')" + with: + namespace: ${{ steps.namespace.outputs.name }}-fwd + testbed: basic-2a + marker_expression: "ow_regression_lf and firmware_upgrade_downgrade" + 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 }}-firmware_upgrade_downgrade + 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 }}-fwd --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-fwd $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-fwd + + - name: run ap support bundle tests + uses: ./.github/actions/run-tests + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'asb_tests')" + with: + namespace: ${{ steps.namespace.outputs.name }}-asb + testbed: basic-2a + marker_expression: "ow_regression_lf and asb_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 }}-asb_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 }}-asb --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") + kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-asb $podname || true + + - name: delete namespace + if: always() + continue-on-error: true + run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-asb + + - name: show gw logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owgw + + - name: show fms logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owfms + + - name: show prov logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owprov + + - name: show analytics logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owanalytics + + - name: show subscription (userportal) logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsub + + - name: show sec logs + if: failure() + run: kubectl -n openwifi-qa01 logs deployment/owsec + test-sonicfi-rap7110c-341x: needs: [ "vars", "build", "test-edgecore-eap105"] runs-on: [ self-hosted, small ] @@ -6659,7 +7427,7 @@ jobs: 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, test-cig-wf189h, test-senao-iap4300m, test-cig-wf672] + 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, test-senao-iap4300m, test-cig-wf672, test-emplus-wap588m, test-sonicfi-rap630w-211g] strategy: fail-fast: false matrix: @@ -6712,7 +7480,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, test-cig-wf189h, test-senao-iap4300m, test-cig-wf672] + 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, test-senao-iap4300m, test-cig-wf672, test-emplus-wap588m, test-sonicfi-rap630w-211g] runs-on: ubuntu-latest if: always() steps: diff --git a/tests/e2e/basic/performance_tests/performance_pass_fail.json b/tests/e2e/basic/performance_tests/performance_pass_fail.json index f62a2f7729..28e45cf70c 100644 --- a/tests/e2e/basic/performance_tests/performance_pass_fail.json +++ b/tests/e2e/basic/performance_tests/performance_pass_fail.json @@ -751,6 +751,18 @@ "UDP": 1000 } } + }, + "sonicfi_rap630w-211g":{ + "AX":{ + "2G 2x2 20MHz": { + "TCP": 200, + "UDP": 220 + }, + "5G 2x2 80MHz": { + "TCP": 800, + "UDP": 900 + } } + } } } \ No newline at end of file