Currently the shared .testbed before_script starts DUT bring-up without checking whether testbed-02 still has a CDRouter package left behind by a canceled earlier job. PPW-1640 showed job 13434548634 was canceled on March 10, 2026, but its CDRouter package kept running for almost 20 hours and that stale state was inherited by later LCM cram jobs on the reused testbed. When that stale CDRouter package stays active, the DUT learns the DHCPv6 DNS forwarders 3001:51a:cafe::2 and 3001:51a:cafe::3. The local unbound resolver then forwards gitlab.com and registry.gitlab.com lookups to those servers, which return NXDOMAIN, so container pulls fail before the new job reaches its own setup. This change is needed to align the generic testbed jobs with the existing CDRouter pipeline flow and reclaim the CDRouter service before stale DNS state can leak into the next run. So lets fix the start of before_script by running the connectivity check and package_stop cleanup immediately. References: PPW-1640 Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13434548634#L33 Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> |
||
|---|---|---|
| .. | ||
| cdrouter | ||
| certs | ||
| docker | ||
| 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.