diff mbox series

[yocto-autobuilder-helper] config.json: add reproducible-openembedded build

Message ID 20230928131836.137286-1-fabien.thomas@smile.fr
State New
Headers show
Series [yocto-autobuilder-helper] config.json: add reproducible-openembedded build | expand

Commit Message

Fabien Thomas Sept. 28, 2023, 1:18 p.m. UTC
The purpose of this new build is to report the reproducibility status of
all meta-openembedded recipes. It use the same reproducible selftest than
OE-Core but setting only world as target, and excluding all oecore recipes
from it. Also, the report output directory for meta-openembedded is
separate from oecore's one.

Signed-off-by: Fabien Thomas <fabien.thomas@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
---
 config.json | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Comments

Richard Purdie Sept. 28, 2023, 4:33 p.m. UTC | #1
On Thu, 2023-09-28 at 15:18 +0200, Fabien Thomas wrote:
> The purpose of this new build is to report the reproducibility status of
> all meta-openembedded recipes. It use the same reproducible selftest than
> OE-Core but setting only world as target, and excluding all oecore recipes
> from it. Also, the report output directory for meta-openembedded is
> separate from oecore's one.
> 
> Signed-off-by: Fabien Thomas <fabien.thomas@smile.fr>
> Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
> ---
>  config.json | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)

This is a good start, thanks!

> diff --git a/config.json b/config.json
> index 05c6794..fde1b1f 100644
> --- a/config.json
> +++ b/config.json
> @@ -264,6 +264,34 @@
>  
>              }
>          },
> +        "reproducible-openembedded" : {

We should call this something like reproducible-meta-oe since we need
to be clear this is meta-oe related.

> +            "MACHINE" : "qemux86-64",
> +            "SDKMACHINE" : "x86_64",
> +            "DISTRO" : "None",
> +            "NEEDREPOS" : ["oecore", "bitbake", "meta-openembedded"],
> +            "extravars" : [
> +                "EXCLUDE_FROM_WORLD:layer-core = '1'",
> +                "EXCLUDE_FROM_WORLD:layer-selftest = '1'",
> +                "OEQA_REPRODUCIBLE_TEST_TARGET = 'world'"

I like the use of the layer override :)

> +            ],
> +            "step1" : {
> +                "shortname" : "Reproducible Selftest for openembedded layers",
> +                "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail-openembedded/ DISPLAY=:1 oe-selftest -r reproducible"],
> +                "ADDLAYER" : [
> +                    "${BUILDDIR}/../meta-selftest",
> +                    "${BUILDDIR}/../meta-openembedded/meta-filesystems",
> +                    "${BUILDDIR}/../meta-openembedded/meta-gnome",
> +                    "${BUILDDIR}/../meta-openembedded/meta-initramfs",
> +                    "${BUILDDIR}/../meta-openembedded/meta-multimedia",
> +                    "${BUILDDIR}/../meta-openembedded/meta-networking",
> +                    "${BUILDDIR}/../meta-openembedded/meta-oe",
> +                    "${BUILDDIR}/../meta-openembedded/meta-perl",
> +                    "${BUILDDIR}/../meta-openembedded/meta-python",
> +                    "${BUILDDIR}/../meta-openembedded/meta-webserver",
> +                    "${BUILDDIR}/../meta-openembedded/meta-xfce"
> +                ]
> +            }
> +        },

Would it make sense to split this into steps for each sublayer? I guess
the downside is we'd have to code the dependencies but those shouldn't
change very often at this point. It would split the build and results
into more manageable chunks?

>          "trigger-build" : {
>              "SDKMACHINE" : "x86_64",
>              "MACHINE" : "qemux86-64",
> @@ -955,6 +983,9 @@
>          "reproducible" : {
>              "TEMPLATE" : "reproducible"
>          },
> +        "reproducible-openembedded" : {
> +            "TEMPLATE" : "reproducible-openembedded"
> +        },
>          "reproducible-ubuntu" : {
>              "TEMPLATE" : "reproducible"
>          },

Otherwise looks good and definitely the right direction.

Cheers,

Richard
diff mbox series

Patch

diff --git a/config.json b/config.json
index 05c6794..fde1b1f 100644
--- a/config.json
+++ b/config.json
@@ -264,6 +264,34 @@ 
 
             }
         },
+        "reproducible-openembedded" : {
+            "MACHINE" : "qemux86-64",
+            "SDKMACHINE" : "x86_64",
+            "DISTRO" : "None",
+            "NEEDREPOS" : ["oecore", "bitbake", "meta-openembedded"],
+            "extravars" : [
+                "EXCLUDE_FROM_WORLD:layer-core = '1'",
+                "EXCLUDE_FROM_WORLD:layer-selftest = '1'",
+                "OEQA_REPRODUCIBLE_TEST_TARGET = 'world'"
+            ],
+            "step1" : {
+                "shortname" : "Reproducible Selftest for openembedded layers",
+                "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc; OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail-openembedded/ DISPLAY=:1 oe-selftest -r reproducible"],
+                "ADDLAYER" : [
+                    "${BUILDDIR}/../meta-selftest",
+                    "${BUILDDIR}/../meta-openembedded/meta-filesystems",
+                    "${BUILDDIR}/../meta-openembedded/meta-gnome",
+                    "${BUILDDIR}/../meta-openembedded/meta-initramfs",
+                    "${BUILDDIR}/../meta-openembedded/meta-multimedia",
+                    "${BUILDDIR}/../meta-openembedded/meta-networking",
+                    "${BUILDDIR}/../meta-openembedded/meta-oe",
+                    "${BUILDDIR}/../meta-openembedded/meta-perl",
+                    "${BUILDDIR}/../meta-openembedded/meta-python",
+                    "${BUILDDIR}/../meta-openembedded/meta-webserver",
+                    "${BUILDDIR}/../meta-openembedded/meta-xfce"
+                ]
+            }
+        },
         "trigger-build" : {
             "SDKMACHINE" : "x86_64",
             "MACHINE" : "qemux86-64",
@@ -955,6 +983,9 @@ 
         "reproducible" : {
             "TEMPLATE" : "reproducible"
         },
+        "reproducible-openembedded" : {
+            "TEMPLATE" : "reproducible-openembedded"
+        },
         "reproducible-ubuntu" : {
             "TEMPLATE" : "reproducible"
         },