diff mbox series

[PATH,v2,1/1] docs/manual: add qemu defconfigs gitlab test

Message ID 20200915103806.13785-1-jugurtha.belkalem@smile.fr
State Changes Requested
Headers show
Series [PATH,v2,1/1] docs/manual: add qemu defconfigs gitlab test | expand

Commit Message

Jugurtha BELKALEM Sept. 15, 2020, 10:38 a.m. UTC
Buildroot supports testing qemu defconfigs on gitlab since [1].

[1] : commit 0c7935063851accf3db4c9eb2fc4f11c3da0c391.

Signed-off-by: Jugurtha BELKALEM <jugurtha.belkalem@smile.fr>
---
Changes v1 -> v2:
  - remove drive=hd0 from doc.

 docs/manual/adding-board-support.txt | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Thomas Petazzoni Sept. 15, 2020, 2:51 p.m. UTC | #1
On Tue, 15 Sep 2020 12:38:06 +0200
Jugurtha BELKALEM <jugurtha.belkalem@smile.fr> wrote:

> +=== Adding qemu defconfig gitlab test
> +
> +Buildroot provides a test script (support/scripts/boot-qemu-image.py)
> +to validate all defconfigs under +board/qemu/. Every supported qemu
> +architecture should append the comment : # qemu_ARCH_defconfig
> +at the end of its command line entry in board/qemu/ARCH/readme.txt (for
> +example aarch64-virt includes : # qemu_aarch64_virt_defconfig).
> +Once a week, every defconfig is tested under gitlab's pipelines :
> +* Launches a qemu instance.
> +* Enters root credentials and checks if login shell is available.
> +* Powers off the instance.
> +The job fails if one of above steps returns unsuccessful status code.
> +to trigger qemu defconfigs test jobs:
> +
> +---------------------
> + $ git push gitlab HEAD:<name>_defconfig
> +---------------------

While I understand the idea of documenting this, I am wondering if the
Buildroot manual is really the right place for this. Indeed, this bit
of documentation is really only useful for the very specific/narrow use
case of qemu defconfigs.

Should this be in board/qemu/readme.txt ? I'm not sure.

Thomas
Romain Naour Jan. 8, 2022, 10:56 a.m. UTC | #2
Hello Thomas,

Le 15/09/2020 à 16:51, Thomas Petazzoni a écrit :
> On Tue, 15 Sep 2020 12:38:06 +0200
> Jugurtha BELKALEM <jugurtha.belkalem@smile.fr> wrote:
> 
>> +=== Adding qemu defconfig gitlab test
>> +
>> +Buildroot provides a test script (support/scripts/boot-qemu-image.py)
>> +to validate all defconfigs under +board/qemu/. Every supported qemu
>> +architecture should append the comment : # qemu_ARCH_defconfig
>> +at the end of its command line entry in board/qemu/ARCH/readme.txt (for
>> +example aarch64-virt includes : # qemu_aarch64_virt_defconfig).
>> +Once a week, every defconfig is tested under gitlab's pipelines :
>> +* Launches a qemu instance.
>> +* Enters root credentials and checks if login shell is available.
>> +* Powers off the instance.
>> +The job fails if one of above steps returns unsuccessful status code.
>> +to trigger qemu defconfigs test jobs:
>> +
>> +---------------------
>> + $ git push gitlab HEAD:<name>_defconfig
>> +---------------------
> 
> While I understand the idea of documenting this, I am wondering if the
> Buildroot manual is really the right place for this. Indeed, this bit
> of documentation is really only useful for the very specific/narrow use
> case of qemu defconfigs.
> 
> Should this be in board/qemu/readme.txt ? I'm not sure.

Maybe the manual needs a new chapter about the gitlab-ci in general and document
all pipeline trigger supported.

For a new qemu defconfigs, we need to take care of:

- define "# qemu_ARCH_defconfig" tag in the file board/qemu/ARCH/readme.txt

- Use board/qemu/post-image.sh post image script and provide the name of the
defconfig as argument of this script:
  BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
  BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"

- Enable host-qemu to use qemu built by Buildroot for the host:
  BR2_PACKAGE_HOST_QEMU=y
  BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y

Being in the manual would promote gitlab-ci testing with Qemu.

Best regards,
Romain


> 
> Thomas
>
Thomas Petazzoni Jan. 8, 2022, 5:52 p.m. UTC | #3
Hello Romain,

On Sat, 8 Jan 2022 11:56:54 +0100
Romain Naour <romain.naour@smile.fr> wrote:

> Maybe the manual needs a new chapter about the gitlab-ci in general and document
> all pipeline trigger supported.
> 
> For a new qemu defconfigs, we need to take care of:
> 
> - define "# qemu_ARCH_defconfig" tag in the file board/qemu/ARCH/readme.txt
> 
> - Use board/qemu/post-image.sh post image script and provide the name of the
> defconfig as argument of this script:
>   BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
>   BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
> 
> - Enable host-qemu to use qemu built by Buildroot for the host:
>   BR2_PACKAGE_HOST_QEMU=y
>   BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
> 
> Being in the manual would promote gitlab-ci testing with Qemu.

Yes, I agree! We need a single place in the chapter with all the Gitlab
CI details. Like the test-pkg integration, testing of defconfigs,
testing of runtime tests, etc.

I'll mark this patch as Changes Requested, because we don't want just a
section/chapter specifically for the qemu defconfig testing in Gitlab
CI, but a broader section;

Please note that Gitlab CI testing of runtime tests is already
documented in the manual, so it will have to be refactored.

Best regards,

Thomas
diff mbox series

Patch

diff --git a/docs/manual/adding-board-support.txt b/docs/manual/adding-board-support.txt
index 33ed709535..6c7eb93ce2 100644
--- a/docs/manual/adding-board-support.txt
+++ b/docs/manual/adding-board-support.txt
@@ -46,3 +46,21 @@  create a directory +board/<manufacturer>+ and a subdirectory
 +board/<manufacturer>/<boardname>+. You can then store your patches
 and configurations in these directories, and reference them from the main
 Buildroot configuration. Refer to xref:customize[] for more details.
+
+=== Adding qemu defconfig gitlab test
+
+Buildroot provides a test script (support/scripts/boot-qemu-image.py)
+to validate all defconfigs under +board/qemu/. Every supported qemu
+architecture should append the comment : # qemu_ARCH_defconfig
+at the end of its command line entry in board/qemu/ARCH/readme.txt (for
+example aarch64-virt includes : # qemu_aarch64_virt_defconfig).
+Once a week, every defconfig is tested under gitlab's pipelines :
+* Launches a qemu instance.
+* Enters root credentials and checks if login shell is available.
+* Powers off the instance.
+The job fails if one of above steps returns unsuccessful status code.
+to trigger qemu defconfigs test jobs:
+
+---------------------
+ $ git push gitlab HEAD:<name>_defconfig
+---------------------