prplos/.gitlab-ci.yml
Petr Štetiar 0054cef6b0 ci: cram: create component jobs as manual by default
Component jobs start automatically whenever CRAM_COMPONENTS selects
them, and the variable defaults to prplos. Every merge-request pipeline
therefore schedules six hardware jobs whether or not anybody needs
them, and the bucket choice is fixed before the pipeline exists. The
non-DUT manifest lint also starts automatically in non-scheduled
pipelines.

Testbed time is the scarce resource, and the build test jobs feeding
these DUT jobs are already manual in merge-request pipelines. The
natural flow is to pick buckets after a build finishes, not at
pipeline creation. The lint should follow the same opt-in flow.

Drop the CRAM_COMPONENTS default and add trailing manual rules so every
component job and the lint appear as optional play buttons in
non-scheduled pipelines. Manually started jobs never gate the pipeline
result. With no opt-in variable or release-tag override, no cram-related
job at all, lint included, starts automatically.

Setting CRAM_COMPONENTS still starts the listed buckets automatically
with each board's existing blocking behavior. The automatic full run in
prplware release tag pipelines is unchanged.

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

255 lines
6.4 KiB
YAML

variables:
CI_DESIGNATED_BRANCH: prpl/nightly
CI_DESIGNATED_BRANCH_SLUG: prpl-nightly
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