The component manifest lint currently runs only during local validation. Merge requests get no feedback when new tests silently enter the prplos remainder. Add a non-DUT manifest coverage job to every pipeline. Fetch an MR base when needed and pass it to the lint. Newly-in-remainder warnings then appear in job output. Give the job explicit rules: a job without rules keeps the legacy branches-and-tags default and is never created in merge-request pipelines, the exact place the diff-base comparison exists for. Skip scheduled pipelines, which carry no cram work. Use the digest-pinned testbed v1.3.0 image for Python, YAML, and git. The MR diff-base comparison requires runtime git for cat-file, fetch, and the lint script's child processes. The image runs as the testbed user while the runner checkout has a different owner. Git otherwise rejects the checkout before lint starts: ```text fatal: detected dubious ownership in repository at '/builds/prpl-foundation/prplos/prplos' ``` Pass a safe.directory override for CI_PROJECT_DIR through Git's inherited configuration environment. Print the selected MR diff base so the comparison path remains visible in job evidence. Add no hardware runner tags or build dependencies. Assisted-by: codex:gpt-5 Assisted-by: claude:fable-5 References: CI-7 Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> |
||
|---|---|---|
| .. | ||
| cdrouter | ||
| certs | ||
| docker | ||
| manual_tests/cram/mxl25641-hdk-6 | ||
| mockups | ||
| scripts | ||
| testbed | ||
| tests | ||
| blackduck.yml | ||
| build.yml | ||
| cdrouter.yml | ||
| coverity.yml | ||
| docker.yml | ||
| prplmesh.yml | ||
| README.md | ||
| release.yml | ||
| sdk.yml | ||
| testbed.yml | ||
Content
This directory contains stuff used on the GitLab CI.
docker
Contains definitions for Docker images.
testbed
Contains definitions for testbed related tests.
scripts
Contains scripts used on GitLab CI.
tests
Contains tests used on GitLab CI.
build.yml
Contains definition of the GitLab CI build test job templates used during build stage. Those templates can then be extended by other GitLab CI jobs in order to keep things DRY.
.build test config
Allows build testing of specific configurations defined in the profiles directory, using scripts/gen_config.py under the hood.
Example usage:
include:
- local: .gitlab/build.yml
stages:
- build
build test netgear-rax40 prpl:
extends: .build test config
Which is going to build test prplOS with netgear-rax40 and prpl profiles.
Description of CI variables:
- CI_BUILD_CONFIG_EXTRA - list of additional config options which should be enabled(prefixed with
+) or disabled (prefixed with-), for example+BUILD_LOG -SDKwould result inCONFIG_BUILD_LOG=yandCONFIG_SDK=yconfig symbols in.configfile.
docker.yml
Provides support for building, tagging and pushing the Docker images to image registry.
For example let's build image foo.
Prerequisites:
- Create directory for new Docker image
mkdir -p .gitlab/docker/foo - Docker image description
$EDITOR .gitlab/docker/foo/Dockefile
Then just put following into .gitlab/docker/foo/gitlab.yml
build Docker image foo:
extends: .build Docker image
testbed.yml
Provides bits needed for runtime testing on real device using labgrid Python testing framework.
Supported devices:
- Netgear RAX40
sdk.yml
Provides support for the OpenWrt SDK utilizing the Docker SDK container under the hood.
.build feed with SDK
Allows compile testing of packages using the SDK.
Example usage, build testing of safec3 package from Intel's feed_opensource_apps feed.
include:
- remote: https://gitlab.com/prpl-foundation/prplOS/prplos/-/raw/prplos/.gitlab/sdk.yml
build:
extends: .build feed with SDK
variables:
CI_SDK_INSTALL_FEEDS: feed_target_mips
CI_SDK_BUILD_PACKAGES: safec3
Description of CI variables:
- CI_SDK_INSTALL_FEEDS - list of feeds which should be installed prior to building packages.
- CI_SDK_BUILD_PACKAGES - list of packages which should be compile tested.
- CI_SDK_BUILD_PARALLEL - max number of threads to use for make (defaults to
nprocif unset).
.generate SDK package build jobs
Generates sdk-package-jobs.yml with separate build jobs for every package so the builds of those packages
can run in parallel. It's supposed to be executed by the child pipeline .execute SDK package build jobs.
.execute SDK package build jobs
It's supposed to execute jobs generated in sdk-package-jobs.yml generated by .generate SDK package build jobs job.