From 1f3e7bce22629e882f0d70ef086fd927bf6720ae Mon Sep 17 00:00:00 2001 From: bhargavi-ct Date: Sat, 9 Aug 2025 19:23:28 +0530 Subject: [PATCH] Update Advanced workflow for RF testing Signed-off-by: bhargavi-ct --- .github/workflows/advanced.yml | 108 +++++++++++++++++++++++++++++++-- 1 file changed, 102 insertions(+), 6 deletions(-) diff --git a/.github/workflows/advanced.yml b/.github/workflows/advanced.yml index e55511131..64efaa8d9 100644 --- a/.github/workflows/advanced.yml +++ b/.github/workflows/advanced.yml @@ -21,7 +21,7 @@ on: description: 'revision of the Open Wifi Helm chart' ap_models: required: true - default: 'edgecore_eap104,edgecore_eap101,edgecore_eap111,hfcl_ion4xe,cig_wf189,cig_wf189h,edgecore_eap105,sonicfi_rap7110c-341x,cig_wf196,cig_wf186h,sonicfi_rap630c-311g,yuncore_fap655,udaya_a6-id2,edgecore_eap112' + default: 'edgecore_eap104,edgecore_eap101,edgecore_eap111,hfcl_ion4xe,cig_wf189,cig_wf189h,edgecore_eap105,sonicfi_rap7110c-341x,cig_wf196,cig_wf186h,sonicfi_rap630c-311g,yuncore_fap655,udaya_a6-id2,edgecore_eap112,edgecore_oap103' description: 'the AP models to test' ap_version: required: true @@ -62,7 +62,7 @@ jobs: id: vars run: | echo "openwifi=$(echo ${{ github.event.inputs.openwifi_revision || 'main' }})" >> $GITHUB_OUTPUT - echo "ap_models=$(echo ${{ github.event.inputs.ap_models || 'edgecore_eap104,edgecore_eap101,cig_wf196' }})" >> $GITHUB_OUTPUT + echo "ap_models=$(echo ${{ github.event.inputs.ap_models || 'edgecore_eap104,edgecore_eap101,cig_wf196,yuncore_fap655,edgecore_oap103' }})" >> $GITHUB_OUTPUT echo "ap_version=$(echo ${{ github.event.inputs.ap_version || 'next-latest' }})" >> $GITHUB_OUTPUT echo "marker_expression=$(echo ${{ github.event.inputs.marker_expression || 'advance' }})" >> $GITHUB_OUTPUT echo "existing_controller=$(echo ${{ github.event.inputs.existing_controller || 'qa01' }})" >> $GITHUB_OUTPUT @@ -73,7 +73,7 @@ jobs: echo "Current slot is $SLOT" if [[ "$SLOT" -eq "0" ]]; then echo "Choosing first slot since $SLOT == 0" - AP_MODELS="${{ github.event.inputs.ap_models || 'edgecore_eap104,edgecore_eap101,cig_wf196' }}" + AP_MODELS="${{ github.event.inputs.ap_models || 'edgecore_eap104,edgecore_eap101,cig_wf196,yuncore_fap655,edgecore_oap103' }}" else echo "Choosing second slot since $SLOT != 0" AP_MODELS="${{ github.event.inputs.ap_models || 'edgecore_oap101-6e,edgecore_eap102,cig_wf186h' }}" @@ -1402,7 +1402,103 @@ jobs: uses: ./.github/actions/run-tests with: namespace: ${{ steps.namespace.outputs.name }} - testbed: advanced-3c + testbed: advanced-1f + 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-${{ 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 sec logs + if: failure() + run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsec + + - name: show analytics logs + if: failure() + run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/analytics + + - name: show subscription (userportal) logs + if: failure() + run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub + + test-edgecore-oap103: + runs-on: [ self-hosted, small ] + needs: [ "vars", "build" ] + timeout-minutes: 1440 + if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_oap103')" + env: + AP_MODEL: edgecore_oap103 + 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" + + - uses: actions/checkout@v3 + - 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: install kubectl + run: | + # TODO WIFI-7839 revert to using stable when issue is resolved on AWS CLI side + 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: advanced-1g 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 }} @@ -1451,7 +1547,7 @@ jobs: report: if: "!cancelled()" runs-on: ubuntu-latest - needs: [ vars, test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-hfcl-ion4xe, test-cig-wf189, test-cig-wf189h, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-cig-wf196, test-cig-wf186h, test-sonicfi-rap630c-311g, test-yuncore-fap655, test-udaya-a6-id2, test-edgecore-eap112 ] + needs: [ vars, test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-hfcl-ion4xe, test-cig-wf189, test-cig-wf189h, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-cig-wf196, test-cig-wf186h, test-sonicfi-rap630c-311g, test-yuncore-fap655, test-udaya-a6-id2, test-edgecore-eap112, test-edgecore-oap103 ] strategy: fail-fast: false matrix: @@ -1502,7 +1598,7 @@ jobs: s3_access_key_secret: ${{ secrets.ALLURE_S3_ACCESS_KEY_SECRET }} cleanup: - needs: [ test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-hfcl-ion4xe, test-cig-wf189, test-cig-wf189h, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-cig-wf196, test-cig-wf186h, test-sonicfi-rap630c-311g, test-yuncore-fap655, test-udaya-a6-id2, test-edgecore-eap112 ] + needs: [ test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-hfcl-ion4xe, test-cig-wf189, test-cig-wf189h, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-cig-wf196, test-cig-wf186h, test-sonicfi-rap630c-311g, test-yuncore-fap655, test-udaya-a6-id2, test-edgecore-eap112, test-edgecore-oap103 ] runs-on: ubuntu-latest if: always() steps: