prplos/.gitlab/cdrouter/turris-omnia.yml
Petr Štetiar e266163bea ci: cdrouter: switch USP testing from STOMP to MQTTv5 as primary MTP
Currently all CDRouter USP protocol tests in prplOS use STOMP MTP
(100%). This no longer matches the FEAT-63 delivery plan and industry
adoption.

MQTTv5 should become the default MTP for the majority of CDRouter test
runs, while keeping WebSocket and STOMP coverage in some jobs as smaller
regression slices.

So lets switch the shared template to MQTTv5 by default, parameterising
the shipped CDRouter configs instead of cloning them, and adding guarded
DUT init helpers that stop obuspa, install the requested reset file,
clear /etc/obuspa.db, start obuspa again, and wait for the USP data
model to come back.

Use the existing job matrix to keep protocol coverage aligned with the
agreed distribution:

 - Wireless smoke tests use WebSocket
 - prplOS Network Test Plan Candidate jobs use WebSocket
 - IPv6 Top-100+mDNS VLAN jobs use STOMP
 - all remaining jobs use MQTTv5
 - MQTTv3 stays out of scope

References: PCF-1323, PCF-2322
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Co-developed-by: Sergio Panseri <sergio.panseri@consult.red>
Co-developed-by: Piotr Nakraszewicz <piotr.nakraszewicz@consult.red>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00

188 lines
6.7 KiB
YAML

.turris-cdrouter: &turris_cdrouter
allow_failure: true
needs: ["build test mvebu prpl security"]
extends:
- .turris-omnia testbed
- .cdrouter
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- when: manual
CDRouter-Top-100+mDNS Turris initramfs:
<<: *turris_cdrouter
variables:
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
CDRouter-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
<<: *turris_cdrouter
variables:
CDROUTER_TEST_CONFIG: vlan
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
CDRouter-Top-100+mDNS Turris PPPoE WAN initramfs:
<<: *turris_cdrouter
variables:
CDROUTER_TEST_CONFIG: ppp
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
CDRouter-Wireless Turris initramfs:
<<: *turris_cdrouter
stage: smoke tests
timeout: 15 minutes
variables:
CDROUTER_TEST_CONFIG: wireless
CDROUTER_CONFIG_USP_CONTROLLER_MTP: websocket
CDROUTER_DUT_INIT_USP_MTP_SCRIPT: .gitlab/scripts/dut-init/cdrouter-dut-configure-usp-ws.sh
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-wireless.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.turris-cdrouter-ipv6: &turris_cdrouter_ipv6
<<: *turris_cdrouter
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- when: manual
CDRouter-UPnP-IPv46 Turris initramfs:
<<: *turris_cdrouter_ipv6
timeout: 60 minutes
variables:
CDROUTER_TEST_CONFIG: generic-ipv6-upnp
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
CDRouter-UPnP-IPv46-Failing Turris initramfs:
<<: *turris_cdrouter_ipv6
timeout: 120 minutes
allow_failure: true
variables:
CDROUTER_TEST_CONFIG: generic-ipv6-upnp
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
CDRouter-IPv6-Top-100+mDNS Turris initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: generic-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
prpl-Certification Turris initramfs:
<<: *turris_cdrouter_ipv6
timeout: 120 minutes
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- when: manual
variables:
CDROUTER_TEST_CONFIG: generic-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-cwmpd.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
CDRouter-IPv6-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: vlan-ipv6
CDROUTER_CONFIG_USP_CONTROLLER_MTP: stomp
CDROUTER_DUT_INIT_USP_MTP_SCRIPT: ''
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
.CDRouter-IPv6-Top-100+mDNS Turris PPPoE WAN initramfs:
<<: *turris_cdrouter_ipv6
variables:
CDROUTER_TEST_CONFIG: ppp-ipv6
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
CDRouter-TR-069 Turris eMMC:
<<: *turris_cdrouter
variables:
LABGRID_TARGET: turris-omnia-emmc
TFTP_IMAGE_FILENAME: prplos-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz
TFTP_IMAGE_FILENAME_PATTERN: /.*prplos-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz/
TFTP_IMAGE_UNPACK_COMMAND: "gunzip --force $TESTBED_TFTP_PATH/$TFTP_IMAGE_FILENAME || true"
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
CDRouter-USP-prpl Turris initramfs:
<<: *turris_cdrouter
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- when: manual
variables:
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
prplWare-Smoke-Test-Suite Turris initramfs:
<<: *turris_cdrouter_ipv6
stage: smoke tests
variables:
CDROUTER_TEST_CONFIG: smoke-test
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-prplmesh-controller.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.turris-certification-variables: &turris_certification_variables
CDROUTER_TEST_CONFIG: prplos-certification
DUT_INIT_SCRIPTS: |
.gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-cwmpd.sh
.gitlab/scripts/dut-init/cdrouter-dut-configure-prplos-certification.sh
.gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh
.turris-certification: &turris_certification
<<: *turris_cdrouter_ipv6
stage: certification tests
timeout: 1h 45m
allow_failure: true
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- when: manual
variables:
<<: *turris_certification_variables
prplOS-Network-Test-Plan-Mandatory-v1.2.0 Turris initramfs:
<<: *turris_certification
prplOS-Network-Test-Plan-Candidate-v1.2.0 Turris initramfs:
<<: *turris_certification
timeout: 52 minutes
variables:
<<: *turris_certification_variables
CDROUTER_CONFIG_USP_CONTROLLER_MTP: websocket
CDROUTER_DUT_INIT_USP_MTP_SCRIPT: .gitlab/scripts/dut-init/cdrouter-dut-configure-usp-ws.sh