prplos/.gitlab-ci.yml
Petr Štetiar 26895230f7 ci: cram: add component split jobs behind CRAM_COMPONENTS
The hardware cram jobs currently run each board's complete suite. Every
automatic pipeline therefore consumes coverage that can be selected more
cheaply by component.

Add a runtime component template so test collection happens in cram's
checkout and environment. Replace each legacy board job with four static
full, prplmesh, lcm, and prplos jobs selected through the
comma-separated CRAM_COMPONENTS variable.

Name each job `cram <board> [<component>]` and include the selected
component in the expandable test-execution section title.

Move the MXL-specific cram skip from the legacy job-name token. Use the
stable DUT board identifier instead.

Preserve skip behavior under the compact OSPv2 name.

Default automatic pipelines to prplos. Start the full jobs
automatically in prplware release tag pipelines, whose build jobs also
run automatically. Keep cram jobs out of scheduled pipelines entirely,
as with the legacy suite: schedules never create the build jobs these
jobs need, so any selected cram job would fail scheduled pipeline
creation with an unsatisfiable needs reference. Keep the test command,
post suite, timeout, run_check, and JUnit filenames unchanged.

Assisted-by: codex:gpt-5
Assisted-by: claude:fable-5
References: CI-7
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-08-19 10:14:27 +00:00

256 lines
6.4 KiB
YAML

variables:
CI_DESIGNATED_BRANCH: prpl/nightly
CI_DESIGNATED_BRANCH_SLUG: prpl-nightly
CRAM_COMPONENTS: prplos
include:
- local: .gitlab/build.yml
- local: .gitlab/blackduck.yml
- local: .gitlab/release.yml
- local: .gitlab/cdrouter.yml
- local: .gitlab/prplmesh.yml
- local: .gitlab/cdrouter/prpl-haze.yml
- local: .gitlab/cdrouter/turris-omnia.yml
- local: .gitlab/cdrouter/mxl25641-hdk-6.yml
- local: .gitlab/cdrouter/arcadyan-mozart.yml
- local: .gitlab/cdrouter/wnc-freedom.yml
- local: .gitlab/cdrouter/nokia-valyrian.yml
- local: .gitlab/coverity.yml
- local: .gitlab/docker.yml
- local: .gitlab/docker/builder/gitlab.yml
- local: .gitlab/docker/sdk/gitlab.yml
- local: .gitlab/docker/ib/gitlab.yml
- local: .gitlab/docker/ib/lcm/gitlab.yml
- local: .gitlab/testbed.yml
- local: .gitlab/testbed/prpl-haze.yml
- local: .gitlab/testbed/turris-omnia.yml
- local: .gitlab/testbed/mxl25641-hdk-6.yml
- local: .gitlab/testbed/arcadyan-mozart.yml
- local: .gitlab/testbed/wnc-freedom.yml
- local: .gitlab/testbed/nokia-valyrian.yml
stages:
- docker
- docker test
- docker deploy
- build
- release
- docker SDK and IB
- docker SDK and IB test
- docker SDK and IB deploy
- docker IB LCM container
- run
- smoke tests
- certification tests
- cdrouter
- coverity
- blackduck
build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread:
extends: .build test config
build test mvebu prpl security:
extends: .build test config
build test x86_64 prpl security:
extends: .build test config
build test ipq807x prpl security:
extends: .build test config
build test mtk_filogic prpl security:
extends: .build test config
build test airoha_an7581 prpl security:
extends: .build test config
build test qca_ipq95xx prpl cellular security thread:
extends: .build test config
build test qca_ipq95xx extender_minimal cellular security thread:
extends: .build test config
build test qca_ipq95xx extender_full cellular security thread:
extends: .build test config
coverity scan qca_ipq95xx prpl extender_full cellular thread:
extends: .coverity scan config
variables:
CI_COVERITY_COMPILER_TEMPLATE_LIST: >
aarch64-openwrt-linux-gcc
aarch64-openwrt-linux-musl-gcc
blackduck scan mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl extender_full cellular security thread:
extends: .blackduck scan config
blackduck scan qca_ipq95xx prpl extender_full cellular security thread:
extends: .blackduck scan config
cram Omnia [full]:
allow_failure: true
needs: ["build test mvebu prpl security"]
extends: .turris-omnia testbed
variables:
COMPONENT: full
cram Omnia [prplmesh]:
allow_failure: true
needs: ["build test mvebu prpl security"]
extends: .turris-omnia testbed
variables:
COMPONENT: prplmesh
cram Omnia [lcm]:
allow_failure: true
needs: ["build test mvebu prpl security"]
extends: .turris-omnia testbed
variables:
COMPONENT: lcm
cram Omnia [prplos]:
allow_failure: true
needs: ["build test mvebu prpl security"]
extends: .turris-omnia testbed
variables:
COMPONENT: prplos
cram Haze [full]:
allow_failure: true
needs: ["build test ipq807x prpl security"]
extends: .prpl-haze testbed
variables:
COMPONENT: full
cram Haze [prplmesh]:
allow_failure: true
needs: ["build test ipq807x prpl security"]
extends: .prpl-haze testbed
variables:
COMPONENT: prplmesh
cram Haze [lcm]:
allow_failure: true
needs: ["build test ipq807x prpl security"]
extends: .prpl-haze testbed
variables:
COMPONENT: lcm
cram Haze [prplos]:
allow_failure: true
needs: ["build test ipq807x prpl security"]
extends: .prpl-haze testbed
variables:
COMPONENT: prplos
cram OSPv2 [full]:
needs: ["build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread"]
extends: .mxl25641-hdk-6 testbed
variables:
COMPONENT: full
cram OSPv2 [prplmesh]:
needs: ["build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread"]
extends: .mxl25641-hdk-6 testbed
variables:
COMPONENT: prplmesh
cram OSPv2 [lcm]:
needs: ["build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread"]
extends: .mxl25641-hdk-6 testbed
variables:
COMPONENT: lcm
cram OSPv2 [prplos]:
needs: ["build test mxl_x86_osp_tb341_v2 mxl_wlan_hostap_ng_wav700 prpl cellular security thread"]
extends: .mxl25641-hdk-6 testbed
variables:
COMPONENT: prplos
cram Freedom [full]:
needs: ["build test qca_ipq95xx prpl cellular security thread"]
extends: .wnc-freedom testbed
variables:
COMPONENT: full
cram Freedom [prplmesh]:
needs: ["build test qca_ipq95xx prpl cellular security thread"]
extends: .wnc-freedom testbed
variables:
COMPONENT: prplmesh
cram Freedom [lcm]:
needs: ["build test qca_ipq95xx prpl cellular security thread"]
extends: .wnc-freedom testbed
variables:
COMPONENT: lcm
cram Freedom [prplos]:
needs: ["build test qca_ipq95xx prpl cellular security thread"]
extends: .wnc-freedom testbed
variables:
COMPONENT: prplos
cram Mozart [full]:
needs:
- job: build test mtk_filogic prpl security
optional: true
extends: .arcadyan-mozart testbed
variables:
COMPONENT: full
cram Mozart [prplmesh]:
needs:
- job: build test mtk_filogic prpl security
optional: true
extends: .arcadyan-mozart testbed
variables:
COMPONENT: prplmesh
cram Mozart [lcm]:
needs:
- job: build test mtk_filogic prpl security
optional: true
extends: .arcadyan-mozart testbed
variables:
COMPONENT: lcm
cram Mozart [prplos]:
needs:
- job: build test mtk_filogic prpl security
optional: true
extends: .arcadyan-mozart testbed
variables:
COMPONENT: prplos
cram Valyrian [full]:
needs:
- job: build test airoha_an7581 prpl security
optional: true
extends: .nokia-valyrian testbed
variables:
COMPONENT: full
cram Valyrian [prplmesh]:
needs:
- job: build test airoha_an7581 prpl security
optional: true
extends: .nokia-valyrian testbed
variables:
COMPONENT: prplmesh
cram Valyrian [lcm]:
needs:
- job: build test airoha_an7581 prpl security
optional: true
extends: .nokia-valyrian testbed
variables:
COMPONENT: lcm
cram Valyrian [prplos]:
needs:
- job: build test airoha_an7581 prpl security
optional: true
extends: .nokia-valyrian testbed
variables:
COMPONENT: prplos