[PATCH] automation: upgrade Yocto to scarthgap

Stefano Stabellini posted 1 patch 1 month, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/alpine.DEB.2.22.394.2407251715040.4857@ubuntu-linux-20-04-desktop
There is a newer version of this series
automation/build/yocto/build-yocto.sh | 9 +++++++--
automation/build/yocto/yocto.inc      | 4 ++--
automation/gitlab-ci/build.yaml       | 2 +-
3 files changed, 10 insertions(+), 5 deletions(-)
[PATCH] automation: upgrade Yocto to scarthgap
Posted by Stefano Stabellini 1 month, 1 week ago
Upgrade Yocto to a newer version. Use ext4 as image format for testing
with QEMU on ARM and ARM64 as the default is WIC and it is not available
for our xen-image-minimal target.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
I am running one last test (that takes hours) I'll make sure it passes
before I commit anything.
---
 automation/build/yocto/build-yocto.sh | 9 +++++++--
 automation/build/yocto/yocto.inc      | 4 ++--
 automation/gitlab-ci/build.yaml       | 2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
index 93ce81ce82..e7a03c4b10 100755
--- a/automation/build/yocto/build-yocto.sh
+++ b/automation/build/yocto/build-yocto.sh
@@ -25,6 +25,7 @@ TARGET_SUPPORTED="qemuarm qemuarm64 qemux86-64"
 VERBOSE="n"
 TARGETLIST=""
 BUILDJOBS="8"
+EXT4="ext4"
 
 # actions to do
 do_clean="n"
@@ -38,8 +39,9 @@ build_result=0
 # layers to include in the project
 build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
                  meta-openembedded/meta-oe meta-openembedded/meta-python \
+                 meta-openembedded/meta-networking \
                  meta-openembedded/meta-filesystems \
-                 meta-openembedded/meta-networking meta-virtualization"
+                 meta-virtualization"
 
 # yocto image to build
 build_image="xen-image-minimal"
@@ -83,6 +85,9 @@ function run_task() {
 function project_create() {
     target="${1:?}"
     destdir="${BUILDDIR}/${target}"
+    if [ $target = "qemux86-64" ]; then
+        EXT4=""
+    fi
 
     (
         # init yocto project
@@ -196,7 +201,7 @@ function project_run() {
 
         /usr/bin/expect <<EOF
 set timeout 1000
-spawn bash -c "runqemu serialstdio nographic slirp"
+spawn bash -c "runqemu serialstdio nographic slirp ${EXT4}"
 
 expect_after {
     -re "(.*)\r" {
diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
index 2f3b1a5b2a..209df7dde9 100644
--- a/automation/build/yocto/yocto.inc
+++ b/automation/build/yocto/yocto.inc
@@ -6,10 +6,10 @@
 # YOCTOVERSION-TARGET for x86_64 hosts
 # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
 # For example you can build an arm64 container with the following command:
-# make yocto/kirkstone-qemuarm64-arm64v8
+# make yocto/scarthgap-qemuarm64-arm64v8
 
 # Yocto versions we are currently using.
-YOCTO_VERSION = kirkstone
+YOCTO_VERSION = scarthgap
 
 # Yocto BSPs we want to build for.
 YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 7ce88d38e7..32045cef0c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -212,7 +212,7 @@
   script:
     - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
   variables:
-    YOCTO_VERSION: kirkstone
+    YOCTO_VERSION: scarthgap
     CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
   artifacts:
     paths:
-- 
2.25.1
Re: [PATCH] automation: upgrade Yocto to scarthgap
Posted by Stefano Stabellini 1 month, 1 week ago
On Thu, 25 Jul 2024, Stefano Stabellini wrote:
> Upgrade Yocto to a newer version. Use ext4 as image format for testing
> with QEMU on ARM and ARM64 as the default is WIC and it is not available
> for our xen-image-minimal target.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

This patch has a couple of issues, I'll send an update

> ---
> I am running one last test (that takes hours) I'll make sure it passes
> before I commit anything.
> ---
>  automation/build/yocto/build-yocto.sh | 9 +++++++--
>  automation/build/yocto/yocto.inc      | 4 ++--
>  automation/gitlab-ci/build.yaml       | 2 +-
>  3 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/automation/build/yocto/build-yocto.sh b/automation/build/yocto/build-yocto.sh
> index 93ce81ce82..e7a03c4b10 100755
> --- a/automation/build/yocto/build-yocto.sh
> +++ b/automation/build/yocto/build-yocto.sh
> @@ -25,6 +25,7 @@ TARGET_SUPPORTED="qemuarm qemuarm64 qemux86-64"
>  VERBOSE="n"
>  TARGETLIST=""
>  BUILDJOBS="8"
> +EXT4="ext4"
>  
>  # actions to do
>  do_clean="n"
> @@ -38,8 +39,9 @@ build_result=0
>  # layers to include in the project
>  build_layerlist="poky/meta poky/meta-poky poky/meta-yocto-bsp \
>                   meta-openembedded/meta-oe meta-openembedded/meta-python \
> +                 meta-openembedded/meta-networking \
>                   meta-openembedded/meta-filesystems \
> -                 meta-openembedded/meta-networking meta-virtualization"
> +                 meta-virtualization"
>  
>  # yocto image to build
>  build_image="xen-image-minimal"
> @@ -83,6 +85,9 @@ function run_task() {
>  function project_create() {
>      target="${1:?}"
>      destdir="${BUILDDIR}/${target}"
> +    if [ $target = "qemux86-64" ]; then
> +        EXT4=""
> +    fi
>  
>      (
>          # init yocto project
> @@ -196,7 +201,7 @@ function project_run() {
>  
>          /usr/bin/expect <<EOF
>  set timeout 1000
> -spawn bash -c "runqemu serialstdio nographic slirp"
> +spawn bash -c "runqemu serialstdio nographic slirp ${EXT4}"
>  
>  expect_after {
>      -re "(.*)\r" {
> diff --git a/automation/build/yocto/yocto.inc b/automation/build/yocto/yocto.inc
> index 2f3b1a5b2a..209df7dde9 100644
> --- a/automation/build/yocto/yocto.inc
> +++ b/automation/build/yocto/yocto.inc
> @@ -6,10 +6,10 @@
>  # YOCTOVERSION-TARGET for x86_64 hosts
>  # YOCTOVERSION-TARGET-arm64v8 for arm64 hosts
>  # For example you can build an arm64 container with the following command:
> -# make yocto/kirkstone-qemuarm64-arm64v8
> +# make yocto/scarthgap-qemuarm64-arm64v8
>  
>  # Yocto versions we are currently using.
> -YOCTO_VERSION = kirkstone
> +YOCTO_VERSION = scarthgap
>  
>  # Yocto BSPs we want to build for.
>  YOCTO_TARGETS = qemuarm64 qemuarm qemux86-64
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 7ce88d38e7..32045cef0c 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -212,7 +212,7 @@
>    script:
>      - ./automation/build/yocto/build-yocto.sh -v --log-dir=./logs --xen-dir=`pwd` ${YOCTO_BOARD} ${YOCTO_OUTPUT}
>    variables:
> -    YOCTO_VERSION: kirkstone
> +    YOCTO_VERSION: scarthgap
>      CONTAINER: yocto:${YOCTO_VERSION}-${YOCTO_BOARD}${YOCTO_HOST}
>    artifacts:
>      paths:
> -- 
> 2.25.1
>