Updated advanced workflow as per 3.2 AP target (#992)

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
This commit is contained in:
Jitendrakumar Kushavah
2024-09-10 14:57:04 +05:30
committed by GitHub
parent 91373d810c
commit 87c328272d

View File

@@ -21,7 +21,7 @@ on:
description: 'revision of the Open Wifi Helm chart'
ap_models:
required: true
default: 'edgecore_eap104,edgecore_oap101-6e,cig_wf186h,edgecore_eap101,edgecore_eap102,cig_wf196'
default: 'edgecore_eap104,edgecore_eap101,edgecore_eap111,cig_wf189,edgecore_eap105,sercomm_ap72tip,cig_wf196,yuncore_ax820,yuncore_fap655'
description: 'the AP models to test'
ap_version:
required: true
@@ -202,13 +202,13 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-edgecore-oap101-6e:
test-edgecore-eap101:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_oap101-6e')"
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap101')"
env:
AP_MODEL: edgecore_oap101-6e
AP_MODEL: edgecore_eap101
steps:
- name: Set AP model output
id: ap_model
@@ -298,13 +298,13 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-cig-wf86h:
test-edgecore-eap111:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf186h')"
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap111')"
env:
AP_MODEL: cig_wf186h
AP_MODEL: edgecore_eap111
steps:
- name: Set AP model output
id: ap_model
@@ -393,13 +393,13 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-edgecore-eap101:
test-cig-wf189:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap101')"
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf189')"
env:
AP_MODEL: edgecore_eap101
AP_MODEL: cig_wf189
steps:
- name: Set AP model output
id: ap_model
@@ -489,13 +489,13 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-edgecore-eap102:
test-edgecore-eap105:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap102')"
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap105')"
env:
AP_MODEL: edgecore_eap102
AP_MODEL: edgecore_eap105
steps:
- name: Set AP model output
id: ap_model
@@ -585,6 +585,102 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-sercomm-ap72tip:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'sercomm_ap72tip')"
env:
AP_MODEL: sercomm_ap72tip
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-2c
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-cig-wf196:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
@@ -602,7 +698,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
python-version: "3.8"
- uses: actions/checkout@v3
- name: install aws CLI tool
@@ -681,11 +777,203 @@ jobs:
if: failure()
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub
test-yuncore-ax820:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'yuncore_ax820')"
env:
AP_MODEL: yuncore_ax820
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-3b
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-yuncore-fap655:
runs-on: [ self-hosted, small ]
needs: [ "vars", "build" ]
timeout-minutes: 1440
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'yuncore_fap655')"
env:
AP_MODEL: yuncore_fap655
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-3c
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
# report
report:
if: "!cancelled()"
runs-on: ubuntu-latest
needs: [ vars, test-edgecore-eap104, test-edgecore-oap101-6e, test-cig-wf86h, test-edgecore-eap101, test-edgecore-eap102, test-cig-wf196 ]
needs: [ vars, test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-cig-wf189, test-edgecore-eap105, test-sercomm-ap72tip, test-cig-wf196, test-yuncore-ax820, test-yuncore-fap655 ]
strategy:
fail-fast: false
matrix:
@@ -736,7 +1024,7 @@ jobs:
s3_access_key_secret: ${{ secrets.ALLURE_S3_ACCESS_KEY_SECRET }}
cleanup:
needs: [ test-edgecore-eap104, test-edgecore-oap101-6e, test-cig-wf86h, test-edgecore-eap101, test-edgecore-eap102, test-cig-wf196 ]
needs: [ test-edgecore-eap104, test-edgecore-eap101, test-edgecore-eap111, test-cig-wf189, test-edgecore-eap105, test-sercomm-ap72tip, test-cig-wf196, test-yuncore-ax820, test-yuncore-fap655 ]
runs-on: ubuntu-latest
if: always()
steps: