performance testing #793
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: performance testing | |
env: | |
# AWS credentials | |
AWS_EKS_NAME: tip-wlan-main | |
AWS_DEFAULT_OUTPUT: json | |
AWS_DEFAULT_REGION: ap-south-1 | |
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }} | |
# Cloud SDK certs | |
CACERT: ${{ secrets.CACERT }} | |
CAKEY: ${{ secrets.CAKEY }} | |
ALLURE_CLI_VERSION: 2.14.0 | |
on: | |
workflow_dispatch: | |
inputs: | |
openwifi_revision: | |
required: true | |
default: "main" | |
description: "revision of the Open Wifi Helm chart" | |
ap_models: | |
required: true | |
default: "cig_wf188n,cig_wf196,hfcl_ion4xe,edgecore_ecw5211,indio_um-305ac,edgecore_oap101-6e,edgecore_eap102,edgecore_eap101,edgecore_eap104,hfcl_ion4xi" | |
description: "the AP models to test" | |
ap_version: | |
required: true | |
default: "next-latest" | |
description: "revision of firmware to flash on AP, <branch>-<commit>" | |
marker_expressions: | |
required: true | |
default: "client_scale_tests,dataplane_tests,peak_throughput_tests,dual_band_tests" | |
description: "Marker expressions to select tests to execute" | |
existing_controller: | |
required: true | |
default: "qa01" | |
description: "Use an existing cloud controller, e.g. like qa01 instead of dynamic one" | |
tests_release: | |
required: false | |
default: "" | |
description: "Tests release branch to use (i.e. 'release/v2.8.0' or 'master'). If left empty, latest release branch is used" | |
schedule: | |
- cron: "30 20 * * 6" | |
jobs: | |
# Set vars | |
vars: | |
runs-on: ubuntu-latest | |
outputs: | |
openwifi_revision: ${{ steps.vars.outputs.openwifi }} | |
ap_models: ${{ steps.vars.outputs.ap_models }} | |
ap_version: ${{ steps.vars.outputs.ap_version }} | |
marker_expressions: ${{ steps.vars.outputs.marker_expressions }} | |
existing_controller: ${{ steps.vars.outputs.existing_controller }} | |
tests_release: ${{ steps.vars.outputs.tests_release }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: set variables | |
id: vars | |
run: | | |
echo "openwifi=$(echo ${{ github.event.inputs.openwifi_revision || 'main' }})" >> $GITHUB_OUTPUT | |
echo "ap_version=$(echo ${{ github.event.inputs.ap_version || 'next-latest' }})" >> $GITHUB_OUTPUT | |
echo "existing_controller=$(echo ${{ github.event.inputs.existing_controller || 'qa01'}})" >> $GITHUB_OUTPUT | |
MARKER_EXPRESSIONS="${{ github.event.inputs.marker_expressions || 'client_scale_tests,dataplane_tests,peak_throughput_tests,dual_band_tests' }}" | |
MARKER_EXPRESSIONS=$(echo $MARKER_EXPRESSIONS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g') | |
cat >> $GITHUB_OUTPUT << EOF | |
marker_expressions=${MARKER_EXPRESSIONS} | |
EOF | |
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf188n,cig_wf196,hfcl_ion4xe,edgecore_ecw5211,indio_um-305ac,edgecore_oap101-6e,edgecore_eap102,edgecore_eap101,edgecore_eap104,hfcl_ion4xi' }}" | |
AP_MODELS=$(echo $AP_MODELS | sed "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g') | |
cat >> $GITHUB_OUTPUT << EOF | |
ap_models=${AP_MODELS} | |
EOF | |
LATEST_TESTS_RELEASE=$(git branch -r | grep 'release/v' | sed 's!\s*origin/!!' | tail -1) | |
if [[ -z "${{ github.event.inputs.tests_release }}" ]]; then | |
echo "Tests release was not passed, using branch $LATEST_TESTS_RELEASE" | |
echo "tests_release=$LATEST_TESTS_RELEASE" >> $GITHUB_OUTPUT | |
else | |
echo "Tests release was passed - ${{ github.event.inputs.tests_release }}" | |
echo "tests_release=${{ github.event.inputs.tests_release }}" >> $GITHUB_OUTPUT | |
fi | |
# Build test image | |
build: | |
runs-on: ubuntu-latest | |
needs: ["vars"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ needs.vars.outputs.tests_release }} | |
- name: build and push Docker image | |
uses: ./.github/actions/build-and-push-docker | |
with: | |
registry: tip-tip-wlan-cloud-docker-repo.jfrog.io | |
registry_user: ${{ secrets.DOCKER_USER_NAME }} | |
registry_password: ${{ secrets.DOCKER_USER_PASSWORD }} | |
# Run tests on APs | |
test-edgecore-oap101-6e: | |
needs: ["vars", "build", "test-cig-wf196"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_oap101-6e')" | |
env: | |
AP_MODEL: edgecore_oap101-6e | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-2a | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-2a | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-2a | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-hfcl-ion4xe: | |
needs: ["vars", "build"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'hfcl_ion4xe')" | |
env: | |
AP_MODEL: hfcl_ion4xe | |
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-3a | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-3a | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-3a | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-3a | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-eap101: | |
needs: ["vars", "build", "test-hfcl-ion4xe"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap101')" | |
env: | |
AP_MODEL: edgecore_eap101 | |
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-3 | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-3 | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-3 | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-3 | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-ecw5211: | |
needs: ["vars", "build"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_ecw5211')" | |
env: | |
AP_MODEL: edgecore_ecw5211 | |
steps: | |
- name: Set AP model output | |
id: ap_model | |
run: | | |
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side | |
- name: install kubectl | |
run: | | |
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl" | |
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl | |
- name: install aws CLI tool | |
run: | | |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" | |
unzip awscliv2.zip | |
sudo ./aws/install | |
- name: get EKS access credentials | |
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} | |
- name: prepare namespace name | |
id: namespace | |
run: | | |
NAMESPACE="performance-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')" | |
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT | |
- name: prepare configuration | |
run: | | |
cat << EOF > lab_info.json | |
${{ secrets.LAB_INFO_JSON }} | |
EOF | |
- name: run tests dataplane_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dataplane_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-dtt | |
testbed: basic-4 | |
marker_expression: "performance and dataplane_tests" | |
configuration_file: "./lab_info.json" | |
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} | |
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-4 | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-4 | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-4 | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-cig-wf188n: | |
needs: ["vars", "build", "test-edgecore-eap102"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf188n')" | |
env: | |
AP_MODEL: cig_wf188n | |
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-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 }} | |
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-1a | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-1a | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-1a | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-eap102: | |
needs: ["vars", "build"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap102')" | |
env: | |
AP_MODEL: edgecore_eap102 | |
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="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 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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-1 | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-1 | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-1 | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-eap104: | |
needs: ["vars", "build", "test-edgecore-ecw5211"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap104')" | |
env: | |
AP_MODEL: edgecore_eap104 | |
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-4a | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-4a | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-4a | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-4a | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-indio-um-305ac: | |
needs: ["vars", "build"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'indio_um-305ac')" | |
env: | |
AP_MODEL: indio_um-305ac | |
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-5 | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-5 | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-5 | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-5 | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-hfcl-ion4xi: | |
needs: [ "vars", "build", "test-indio-um-305ac" ] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'hfcl_ion4xi')" | |
env: | |
AP_MODEL: hfcl_ion4xi | |
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-5a | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-5a | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-5a | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-5a | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_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-cig-wf196: | |
needs: ["vars", "build"] | |
runs-on: [ self-hosted, small ] | |
timeout-minutes: 1440 | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf196')" | |
env: | |
AP_MODEL: cig_wf196 | |
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-2 | |
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 }}"' | |
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 peak_throughput_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'peak_throughput_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-ssdbt | |
testbed: basic-2 | |
marker_expression: "performance and peak_throughput_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 }}-peak_throughput_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 client_scale_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'client_scale_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-2 | |
marker_expression: "performance and 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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-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 dual_band_tests | |
uses: ./.github/actions/run-tests | |
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.marker_expressions), 'dual_band_tests')" | |
with: | |
namespace: ${{ steps.namespace.outputs.name }}-wct | |
testbed: basic-2 | |
marker_expression: "performance and dual_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 }}"' | |
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}-dual_band_tests" | |
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build" | |
# necessary because if conditionals in composite actions are currently not respected | |
- name: get tests logs | |
if: always() | |
continue-on-error: true | |
run: | | |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }}-wct --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///") | |
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }}-wct $podname || true | |
- name: delete namespace | |
if: always() | |
continue-on-error: true | |
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}-wct | |
- name: show gw logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owgw | |
- name: show fms logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owfms | |
- name: show prov logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owprov | |
- name: show analytics logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owanalytics | |
- name: show subscription (userportal) logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsub | |
- name: show sec logs | |
if: failure() | |
run: kubectl -n openwifi-${{ needs.vars.outputs.existing_controller }} logs deployment/owsec | |
# Save reports | |
report: | |
if: "!cancelled()" | |
runs-on: ubuntu-latest | |
needs: [vars, test-cig-wf188n, test-edgecore-oap101-6e, test-cig-wf196, test-edgecore-eap102, test-hfcl-ion4xe, test-edgecore-eap101, test-edgecore-ecw5211, test-edgecore-eap104, test-indio-um-305ac, test-hfcl-ion4xi] | |
strategy: | |
fail-fast: false | |
matrix: | |
model: ${{ fromJson( needs.vars.outputs.ap_models ) }} | |
steps: | |
- name: checkout testing repo | |
uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: allure-results-${{ matrix.model }}-dataplane_tests | |
path: allure-results-dataplane_tests | |
- uses: actions/download-artifact@v3 | |
with: | |
name: allure-results-${{ matrix.model }}-peak_throughput_tests | |
path: allure-results-peak_throughput_tests | |
- uses: actions/download-artifact@v3 | |
with: | |
name: allure-results-${{ matrix.model }}-client_scale_tests | |
path: allure-results-client_scale_tests | |
- uses: actions/download-artifact@v3 | |
with: | |
name: allure-results-${{ matrix.model }}-dual_band_tests | |
path: allure-results-dual_band_tests | |
- name: merge results | |
run: | | |
mkdir allure-results | |
cp -r allure-results-dataplane_tests/* allure-results/ | |
cp -r allure-results-peak_throughput_tests/* allure-results/ | |
cp -r allure-results-client_scale_tests/* allure-results/ | |
cp -r allure-results-dual_band_tests/* allure-results/ | |
- name: download history of previous run | |
continue-on-error: true | |
run: | | |
LAST_RUN_ID=$(aws s3api head-object --bucket openwifi-allure-reports --key performance/${{ matrix.model }}/latest/index.html | jq -r .Metadata.latest) | |
aws s3 cp --recursive s3://openwifi-allure-reports/performance/${{ matrix.model }}/$LAST_RUN_ID/history history | |
- name: generate Allure report | |
uses: ./.github/actions/generate-allure-report | |
with: | |
results_path: ./allure-results | |
history_path: ./history | |
additional_metadata: | | |
Ap.Model=${{ matrix.model }} | |
- name: upload Allure report as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: allure-report-${{ matrix.model }} | |
path: allure-report | |
# doing this to be able to aggregate multiple reports together later on | |
- name: copy results into report | |
run: cp -r allure-results allure-report/results | |
- name: upload to S3 | |
# TODO uncomment before merging | |
#if: github.ref == 'refs/heads/master' | |
uses: ./.github/actions/allure-report-to-s3 | |
with: | |
test_type: performance | |
testbed: ${{ matrix.model }} | |
report_path: allure-report | |
s3_access_key_id: ${{ secrets.ALLURE_S3_ACCESS_KEY_ID }} | |
s3_access_key_secret: ${{ secrets.ALLURE_S3_ACCESS_KEY_SECRET }} | |
# Cleanup | |
cleanup: | |
needs: [test-cig-wf188n, test-edgecore-oap101-6e, test-cig-wf196, test-edgecore-eap102, test-hfcl-ion4xe, test-edgecore-eap101, test-edgecore-ecw5211, test-edgecore-eap104, test-indio-um-305ac, test-hfcl-ion4xi] | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- uses: actions/checkout@v3 | |
- name: cleanup Docker image | |
uses: ./.github/actions/cleanup-docker | |
with: | |
registry_user: ${{ secrets.DOCKER_USER_NAME }} | |
registry_password: ${{ secrets.DOCKER_USER_PASSWORD }} |