* [yocto-autobuilder2][PATCH 0/4] Implement 'containers' jobs
@ 2026-05-08 2:00 ` tim.orling
0 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 2:00 UTC (permalink / raw)
To: yocto-patches
From: Tim Orling <tim.orling@konsulko.com>
This series contains the 'yocto-autobuilder2' patches to enable:
* building the 'vcontainer-tarball'
* building and pushing containers from:
- meta-virtualization
- meta-yocto-containers-demo
* testing the 'vcontainer-tarball'
- vcontainer-tests
- vdkr-tests
- vpdmn-tests
* gating pushing of containers with push_containers property,
similar to the "Do you want to deploy artefacts?" boolean.
The jobs are associated with a 'containers' tag, so they will be
grouped in the Yocto console view.
The following changes since commit 80ce858b499f7c91cd7a2a0990f6e28e879f0fca:
schedulers: Add wrynose scheduled jobs (2026-04-23 22:44:34 +0100)
are available in the Git repository at:
https://git.yoctoproject.org/yocto-autobuilder2 contrib/timo/containers-upstream
https://git.yoctoproject.org/yocto-autobuilder2/log/?h=contrib/timo/containers-upstream
for you to fetch changes up to 9ed602f7dfbc72d96966167a1114dd23aa8b3ca6:
schedulers,builders: add push_containers property (2026-05-07 17:22:40 -0700)
----------------------------------------------------------------
Tim Orling (4):
config.py: add vcontainers-tarball; containers tag
config.py: add containers-meta-virt;-library jobs
config.py: add vcontainer-tests, vdkr-tests, vpdmn-tests builders
schedulers,builders: add push_containers property
builders.py | 2 ++
config.py | 23 ++++++++++++++++++++++-
schedulers.py | 9 +++++++++
3 files changed, 33 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [yocto-autobuilder2][PATCH 1/4] config.py: add vcontainers-tarball; containers tag
2026-05-08 2:00 ` tim.orling
@ 2026-05-08 2:00 ` tim.orling
-1 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 1:25 UTC (permalink / raw)
To: o=yocto-patches, yocto
From: Tim Orling <tim.orling@konsulko.com>
Initial steps towards containers jobs.
We will need vcontainers-tarball (similar to buildtools job).
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/config.py b/config.py
index b5b2b62..630c8d3 100644
--- a/config.py
+++ b/config.py
@@ -34,6 +34,7 @@ buildertorepos = {
"metrics": baserepos + ["meta-openembedded"],
"metrics-gitstats": baserepos + ["meta-openembedded", "yocto-docs"],
"meta-webosose": baserepos + ["meta-clang", "meta-openembedded", "meta-qt6", "meta-webosose", "meta-security"],
+ "vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
"default": baserepos
}
@@ -159,7 +160,8 @@ builders_others = [
"oe-selftest-ubuntu", "oe-selftest-centos", "oe-selftest-opensuse",
"non-gpl3",
"meta-webosose",
- "meta-qcom"
+ "meta-qcom",
+ "vcontainer-tarball"
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -325,4 +327,6 @@ builder_tags = {
"metrics": ["metrics"],
"metrics-gitstats": ["metrics"],
+
+ "vcontainer-tarball": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [yocto-autobuilder2][PATCH 1/4] config.py: add vcontainers-tarball; containers tag
@ 2026-05-08 2:00 ` tim.orling
0 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 2:00 UTC (permalink / raw)
To: yocto-patches
From: Tim Orling <tim.orling@konsulko.com>
Initial steps towards containers jobs.
We will need vcontainers-tarball (similar to buildtools job).
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/config.py b/config.py
index b5b2b62..630c8d3 100644
--- a/config.py
+++ b/config.py
@@ -34,6 +34,7 @@ buildertorepos = {
"metrics": baserepos + ["meta-openembedded"],
"metrics-gitstats": baserepos + ["meta-openembedded", "yocto-docs"],
"meta-webosose": baserepos + ["meta-clang", "meta-openembedded", "meta-qt6", "meta-webosose", "meta-security"],
+ "vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
"default": baserepos
}
@@ -159,7 +160,8 @@ builders_others = [
"oe-selftest-ubuntu", "oe-selftest-centos", "oe-selftest-opensuse",
"non-gpl3",
"meta-webosose",
- "meta-qcom"
+ "meta-qcom",
+ "vcontainer-tarball"
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -325,4 +327,6 @@ builder_tags = {
"metrics": ["metrics"],
"metrics-gitstats": ["metrics"],
+
+ "vcontainer-tarball": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [yocto-autobuilder2][PATCH 2/4] config.py: add containers-meta-virt;-library jobs
2026-05-08 2:00 ` tim.orling
@ 2026-05-08 2:00 ` tim.orling
-1 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 1:25 UTC (permalink / raw)
To: o=yocto-patches, yocto
From: Tim Orling <tim.orling@konsulko.com>
Add 'containers-meta-virt' job for the original containers available in
meta-virtualization itself.
Add 'containers-library' which includes 'meta-yocto-containers-demo' and
adds additional containers. The pattern is modeled after
docker.io/library/*
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/config.py b/config.py
index 630c8d3..e7f9619 100644
--- a/config.py
+++ b/config.py
@@ -35,6 +35,8 @@ buildertorepos = {
"metrics-gitstats": baserepos + ["meta-openembedded", "yocto-docs"],
"meta-webosose": baserepos + ["meta-clang", "meta-openembedded", "meta-qt6", "meta-webosose", "meta-security"],
"vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "containers-meta-virt": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "containers-library": baserepos + ["meta-openembedded", "meta-virtualization", "meta-yocto-containers-demo"],
"default": baserepos
}
@@ -68,6 +70,8 @@ repos = {
"meta-webosose": ["https://github.com/webosose/meta-webosose.git", "master"],
"meta-qcom": ["https://github.com/qualcomm-linux/meta-qcom", "master"],
"meta-riscv": ["https://github.com/riscv/meta-riscv.git", "master"],
+ "meta-yocto-containers-demo":
+ ["https://github.com/moto-timo/meta-yocto-containers-demo.git", "master"],
}
trigger_builders_wait_shared = [
@@ -161,7 +165,9 @@ builders_others = [
"non-gpl3",
"meta-webosose",
"meta-qcom",
- "vcontainer-tarball"
+ "vcontainer-tarball",
+ "containers-meta-virt",
+ "containers-library",
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -329,4 +335,6 @@ builder_tags = {
"metrics-gitstats": ["metrics"],
"vcontainer-tarball": ["containers"],
+ "containers-meta-virt": ["containers"],
+ "containers-library": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [yocto-autobuilder2][PATCH 2/4] config.py: add containers-meta-virt;-library jobs
@ 2026-05-08 2:00 ` tim.orling
0 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 2:00 UTC (permalink / raw)
To: yocto-patches
From: Tim Orling <tim.orling@konsulko.com>
Add 'containers-meta-virt' job for the original containers available in
meta-virtualization itself.
Add 'containers-library' which includes 'meta-yocto-containers-demo' and
adds additional containers. The pattern is modeled after
docker.io/library/*
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/config.py b/config.py
index 630c8d3..e7f9619 100644
--- a/config.py
+++ b/config.py
@@ -35,6 +35,8 @@ buildertorepos = {
"metrics-gitstats": baserepos + ["meta-openembedded", "yocto-docs"],
"meta-webosose": baserepos + ["meta-clang", "meta-openembedded", "meta-qt6", "meta-webosose", "meta-security"],
"vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "containers-meta-virt": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "containers-library": baserepos + ["meta-openembedded", "meta-virtualization", "meta-yocto-containers-demo"],
"default": baserepos
}
@@ -68,6 +70,8 @@ repos = {
"meta-webosose": ["https://github.com/webosose/meta-webosose.git", "master"],
"meta-qcom": ["https://github.com/qualcomm-linux/meta-qcom", "master"],
"meta-riscv": ["https://github.com/riscv/meta-riscv.git", "master"],
+ "meta-yocto-containers-demo":
+ ["https://github.com/moto-timo/meta-yocto-containers-demo.git", "master"],
}
trigger_builders_wait_shared = [
@@ -161,7 +165,9 @@ builders_others = [
"non-gpl3",
"meta-webosose",
"meta-qcom",
- "vcontainer-tarball"
+ "vcontainer-tarball",
+ "containers-meta-virt",
+ "containers-library",
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -329,4 +335,6 @@ builder_tags = {
"metrics-gitstats": ["metrics"],
"vcontainer-tarball": ["containers"],
+ "containers-meta-virt": ["containers"],
+ "containers-library": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [yocto-autobuilder2][PATCH 3/4] config.py: add vcontainer-tests, vdkr-tests, vpdmn-tests builders
2026-05-08 2:00 ` tim.orling
@ 2026-05-08 2:00 ` tim.orling
-1 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 1:25 UTC (permalink / raw)
To: o=yocto-patches, yocto
From: Tim Orling <tim.orling@konsulko.com>
Register three builders that run the meta-virtualization pytest
suites against the SDK produced by vcontainer-tarball, so the test
coverage is exercised by the autobuilder without rebuilding
vcontainer-tarball for every run.
The -tests jobs need the same repo set as vcontainer-tarball
(baserepos plus meta-openembedded and meta-virtualization) so the
layer checkout on the worker matches what the SDK was built against,
and are tagged 'containers' for filtering alongside the other
container-related jobs.
AI-Generated: Claude Cowork Opus 4.7
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/config.py b/config.py
index e7f9619..4bd5819 100644
--- a/config.py
+++ b/config.py
@@ -37,6 +37,9 @@ buildertorepos = {
"vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
"containers-meta-virt": baserepos + ["meta-openembedded", "meta-virtualization"],
"containers-library": baserepos + ["meta-openembedded", "meta-virtualization", "meta-yocto-containers-demo"],
+ "vcontainer-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "vdkr-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "vpdmn-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
"default": baserepos
}
@@ -168,6 +171,9 @@ builders_others = [
"vcontainer-tarball",
"containers-meta-virt",
"containers-library",
+ "vcontainer-tests",
+ "vdkr-tests",
+ "vpdmn-tests",
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -337,4 +343,7 @@ builder_tags = {
"vcontainer-tarball": ["containers"],
"containers-meta-virt": ["containers"],
"containers-library": ["containers"],
+ "vcontainer-tests": ["containers"],
+ "vdkr-tests": ["containers"],
+ "vpdmn-tests": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [yocto-autobuilder2][PATCH 3/4] config.py: add vcontainer-tests, vdkr-tests, vpdmn-tests builders
@ 2026-05-08 2:00 ` tim.orling
0 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 2:00 UTC (permalink / raw)
To: yocto-patches
From: Tim Orling <tim.orling@konsulko.com>
Register three builders that run the meta-virtualization pytest
suites against the SDK produced by vcontainer-tarball, so the test
coverage is exercised by the autobuilder without rebuilding
vcontainer-tarball for every run.
The -tests jobs need the same repo set as vcontainer-tarball
(baserepos plus meta-openembedded and meta-virtualization) so the
layer checkout on the worker matches what the SDK was built against,
and are tagged 'containers' for filtering alongside the other
container-related jobs.
AI-Generated: Claude Cowork Opus 4.7
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
config.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/config.py b/config.py
index e7f9619..4bd5819 100644
--- a/config.py
+++ b/config.py
@@ -37,6 +37,9 @@ buildertorepos = {
"vcontainer-tarball": baserepos + ["meta-openembedded", "meta-virtualization"],
"containers-meta-virt": baserepos + ["meta-openembedded", "meta-virtualization"],
"containers-library": baserepos + ["meta-openembedded", "meta-virtualization", "meta-yocto-containers-demo"],
+ "vcontainer-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "vdkr-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
+ "vpdmn-tests": baserepos + ["meta-openembedded", "meta-virtualization"],
"default": baserepos
}
@@ -168,6 +171,9 @@ builders_others = [
"vcontainer-tarball",
"containers-meta-virt",
"containers-library",
+ "vcontainer-tests",
+ "vdkr-tests",
+ "vpdmn-tests",
] + old_arch_full
subbuilders = list(set(trigger_builders_wait_quick + trigger_builders_wait_full + trigger_builders_wait_perf + builders_others))
@@ -337,4 +343,7 @@ builder_tags = {
"vcontainer-tarball": ["containers"],
"containers-meta-virt": ["containers"],
"containers-library": ["containers"],
+ "vcontainer-tests": ["containers"],
+ "vdkr-tests": ["containers"],
+ "vpdmn-tests": ["containers"],
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [yocto-autobuilder2][PATCH 4/4] schedulers,builders: add push_containers property
2026-05-08 2:00 ` tim.orling
@ 2026-05-08 2:00 ` tim.orling
-1 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 1:25 UTC (permalink / raw)
To: o=yocto-patches, yocto
From: Tim Orling <tim.orling@konsulko.com>
Add a Boolean property to gate whether we push built containers.
Both schedulers and builders need to be aware of the property: the
scheduler propagates it on triggered builds, and the builder needs
to consume it so per-step push behaviour is controlled by the same
flag.
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
builders.py | 2 ++
schedulers.py | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/builders.py b/builders.py
index 721adc5..6bbf134 100644
--- a/builders.py
+++ b/builders.py
@@ -47,6 +47,7 @@ def ensure_props_set(props):
"is_release": props.getProperty("is_release", False),
"buildappsrcrev": props.getProperty("buildappsrcrev", ""),
"deploy_artefacts": props.getProperty("deploy_artefacts", False),
+ "push_containers": props.getProperty("push_containers", False),
"publish_destination": props.getProperty("publish_destination", "")
}
@@ -379,6 +380,7 @@ def create_parent_builder_factory(buildername, waitname):
"build_type": util.Property("build_type"),
"buildappsrcrev": "",
"deploy_artefacts": util.Property("deploy_artefacts"),
+ "push_containers": util.Property("push_containers"),
"publish_destination": util.Property("publish_destination"),
"yocto_number": util.Property("yocto_number"),
"milestone_number": util.Property("milestone_number"),
diff --git a/schedulers.py b/schedulers.py
index 67fdd39..62d94d7 100644
--- a/schedulers.py
+++ b/schedulers.py
@@ -484,6 +484,11 @@ def props_for_builder(builder):
label="Do we want to deploy artefacts?",
default=False
))
+ props.append(util.BooleanParameter(
+ name="push_containers",
+ label="Do we want to push built containers?",
+ default=False
+ ))
props = props + repos_for_builder(builder)
worker_list = config.builder_to_workers.get(builder, config.builder_to_workers['default'])
props.append(util.ChoiceStringParameter(name="worker",
@@ -595,6 +600,10 @@ def parent_scheduler(target):
util.BooleanParameter(
name="deploy_artefacts",
label="Do we want to save build output? ",
+ default=False),
+ util.BooleanParameter(
+ name="push_containers",
+ label="Do we want to push built containers? ",
default=False)
]+repos_for_builder(target))
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [yocto-autobuilder2][PATCH 4/4] schedulers,builders: add push_containers property
@ 2026-05-08 2:00 ` tim.orling
0 siblings, 0 replies; 10+ messages in thread
From: tim.orling @ 2026-05-08 2:00 UTC (permalink / raw)
To: yocto-patches
From: Tim Orling <tim.orling@konsulko.com>
Add a Boolean property to gate whether we push built containers.
Both schedulers and builders need to be aware of the property: the
scheduler propagates it on triggered builds, and the builder needs
to consume it so per-step push behaviour is controlled by the same
flag.
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
builders.py | 2 ++
schedulers.py | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/builders.py b/builders.py
index 721adc5..6bbf134 100644
--- a/builders.py
+++ b/builders.py
@@ -47,6 +47,7 @@ def ensure_props_set(props):
"is_release": props.getProperty("is_release", False),
"buildappsrcrev": props.getProperty("buildappsrcrev", ""),
"deploy_artefacts": props.getProperty("deploy_artefacts", False),
+ "push_containers": props.getProperty("push_containers", False),
"publish_destination": props.getProperty("publish_destination", "")
}
@@ -379,6 +380,7 @@ def create_parent_builder_factory(buildername, waitname):
"build_type": util.Property("build_type"),
"buildappsrcrev": "",
"deploy_artefacts": util.Property("deploy_artefacts"),
+ "push_containers": util.Property("push_containers"),
"publish_destination": util.Property("publish_destination"),
"yocto_number": util.Property("yocto_number"),
"milestone_number": util.Property("milestone_number"),
diff --git a/schedulers.py b/schedulers.py
index 67fdd39..62d94d7 100644
--- a/schedulers.py
+++ b/schedulers.py
@@ -484,6 +484,11 @@ def props_for_builder(builder):
label="Do we want to deploy artefacts?",
default=False
))
+ props.append(util.BooleanParameter(
+ name="push_containers",
+ label="Do we want to push built containers?",
+ default=False
+ ))
props = props + repos_for_builder(builder)
worker_list = config.builder_to_workers.get(builder, config.builder_to_workers['default'])
props.append(util.ChoiceStringParameter(name="worker",
@@ -595,6 +600,10 @@ def parent_scheduler(target):
util.BooleanParameter(
name="deploy_artefacts",
label="Do we want to save build output? ",
+ default=False),
+ util.BooleanParameter(
+ name="push_containers",
+ label="Do we want to push built containers? ",
default=False)
]+repos_for_builder(target))
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread