From 00b65b0a938ddcbed2ad5681f8f14483dc237a02 Mon Sep 17 00:00:00 2001 From: Viswanath Kraleti Date: Fri, 13 Sep 2024 11:54:54 +0530 Subject: [PATCH 1/2] CI: Enable building of the images with and without initramfs Enable building of the images with and without initramfs so that all possible dependencies between the kernel and the initramfs are covered. Signed-off-by: Viswanath Kraleti [DB: reworked to fix duplicate names, while having less extra configs] Signed-off-by: Dmitry Baryshkov --- .github/workflows/build-template.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-template.yml b/.github/workflows/build-template.yml index 31184349e..27d4c6f55 100644 --- a/.github/workflows/build-template.yml +++ b/.github/workflows/build-template.yml @@ -70,7 +70,7 @@ jobs: for tclibc in ${TCLIBC}; do for kernel in ${KERNELS}; do cat << EOF >> plan.yaml - ${tclibc}-${kernel}: &${tclibc}-${kernel} + ${tclibc}-${kernel}-initramfs: &${tclibc}-${kernel} local_conf: - INHERIT += 'buildstats buildstats-summary' - INHERIT:remove = 'rm_work' @@ -78,6 +78,14 @@ jobs: - PREFERRED_PROVIDER_virtual/kernel := 'linux-${kernel}' - INITRAMFS_IMAGE ?= 'initramfs-rootfs-image' + ${tclibc}-${kernel}: &${tclibc}-${kernel}-noinitramfs + local_conf: + - INHERIT += 'buildstats buildstats-summary' + - INHERIT:remove = 'rm_work' + - TCLIBC := '${tclibc}' + - PREFERRED_PROVIDER_virtual/kernel := 'linux-${kernel}' + - INITRAMFS_IMAGE ?= '' + EOF done done @@ -99,6 +107,7 @@ jobs: if [ "${machine}" = "qcom-armv8a" -a "${{inputs.branch}}" = "master" ] ; then cat << EOF >> plan.yaml - { <<: [*commondata, *${tclibc}-yocto], machine: qcom-armv8a, name: qcom-armv8a-${tclibc}-yocto } + - { <<: [*commondata, *${tclibc}-yocto-noinitramfs], machine: qcom-armv8a, name: qcom-armv8a-${tclibc}-yocto-noinitramfs } EOF fi done From 3c5a909a702a4ac0f97497e2e7ff33b22787e6bd Mon Sep 17 00:00:00 2001 From: Dmitry Baryshkov Date: Sun, 15 Sep 2024 01:51:29 +0300 Subject: [PATCH 2/2] CI: manually specify build matrix In order to be more flexible, manually specify build variants (machine-libc-kernel-subtype) Signed-off-by: Dmitry Baryshkov --- .github/workflows/build-template.yml | 18 +++++++++--------- .github/workflows/daily.yml | 18 ++++++++++++++++++ .github/workflows/premerge.yml | 6 ++++++ .github/workflows/push.yml | 6 ++++++ 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-template.yml b/.github/workflows/build-template.yml index 27d4c6f55..2bee6450b 100644 --- a/.github/workflows/build-template.yml +++ b/.github/workflows/build-template.yml @@ -10,6 +10,9 @@ on: machines: required: true type: string + variants: + required: true + type: string url: required: true type: string @@ -70,7 +73,7 @@ jobs: for tclibc in ${TCLIBC}; do for kernel in ${KERNELS}; do cat << EOF >> plan.yaml - ${tclibc}-${kernel}-initramfs: &${tclibc}-${kernel} + ${tclibc}-${kernel}: &${tclibc}-${kernel} local_conf: - INHERIT += 'buildstats buildstats-summary' - INHERIT:remove = 'rm_work' @@ -78,7 +81,7 @@ jobs: - PREFERRED_PROVIDER_virtual/kernel := 'linux-${kernel}' - INITRAMFS_IMAGE ?= 'initramfs-rootfs-image' - ${tclibc}-${kernel}: &${tclibc}-${kernel}-noinitramfs + ${tclibc}-${kernel}-noinitramfs: &${tclibc}-${kernel}-noinitramfs local_conf: - INHERIT += 'buildstats buildstats-summary' - INHERIT:remove = 'rm_work' @@ -101,15 +104,12 @@ jobs: bakes: EOF for machine in ${{inputs.machines}}; do + for variant in ${{inputs.variants}}; do + [ ${variant##${machine}-${tclibc}} == ${variant} ] && continue cat << EOF >> plan.yaml - - { <<: [*commondata, *${tclibc}-linaro-qcomlt], machine: ${machine}, name: ${machine}-${tclibc} } + - { <<: [*commondata, *${variant#${machine}-}], machine: ${machine}, name: ${variant} } EOF - if [ "${machine}" = "qcom-armv8a" -a "${{inputs.branch}}" = "master" ] ; then - cat << EOF >> plan.yaml - - { <<: [*commondata, *${tclibc}-yocto], machine: qcom-armv8a, name: qcom-armv8a-${tclibc}-yocto } - - { <<: [*commondata, *${tclibc}-yocto-noinitramfs], machine: qcom-armv8a, name: qcom-armv8a-${tclibc}-yocto-noinitramfs } - EOF - fi + done done done diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 148e6028c..3da953586 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -11,6 +11,12 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image initramfs-firmware-image initramfs-rootfs-image cryptodev-module esp-qcom-image machines: qcom-armv8a qcom-armv7a-modem qcom-armv7a + variants: >- + qcom-armv8a-glibc-yocto qcom-armv8a-musl-yocto + qcom-armv7a-glibc-yocto qcom-armv7a-musl-yocto + qcom-armv7a-modem-glibc-linaro-qcomlt qcom-armv7a-modem-musl-linaro-qcomlt + qcom-armv8a-glibc-linaro-qcomlt + qcom-armv8a-glibc-yocto-noinitramfs ref_type: branch ref: master branch: master @@ -23,6 +29,12 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image initramfs-firmware-image initramfs-rootfs-image cryptodev-module esp-qcom-image machines: qcom-armv8a qcom-armv7a-modem qcom-armv7a + variants: >- + qcom-armv8a-glibc-yocto qcom-armv8a-musl-yocto + qcom-armv7a-glibc-yocto qcom-armv7a-musl-yocto + qcom-armv7a-modem-glibc-linaro-qcomlt qcom-armv7a-modem-musl-linaro-qcomlt + qcom-armv8a-glibc-linaro-qcomlt + qcom-armv8a-glibc-yocto-noinitramfs ref_type: branch ref: scarthgap branch: scarthgap @@ -35,6 +47,10 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image initramfs-firmware-image initramfs-rootfs-image cryptodev-module machines: qcom-armv8a sdx55-mtp qcom-armv7a + variants: >- + qcom-armv8a-glibc-linaro-qcomlt qcom-armv8a-musl-linaro-qcomlt + qcom-armv7a-glibc-linaro-qcomlt qcom-armv7a-musl-linaro-qcomlt + sdx55-mtp-modem-glibc-linaro-qcomlt sdx55-mtp-modem-musl-linaro-qcomlt ref_type: branch ref: kirkstone branch: kirkstone @@ -47,6 +63,8 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image cryptodev-module machines: qcom-armv8a + variants: >- + qcom-armv8a-glibc-linaro-qcomlt qcom-armv8a-musl-linaro-qcomlt ref_type: branch ref: dunfell branch: dunfell diff --git a/.github/workflows/premerge.yml b/.github/workflows/premerge.yml index ec0dce0f9..d65d5b6ca 100644 --- a/.github/workflows/premerge.yml +++ b/.github/workflows/premerge.yml @@ -10,6 +10,12 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image initramfs-firmware-image initramfs-rootfs-image cryptodev-module esp-qcom-image machines: qcom-armv8a qcom-armv7a-modem qcom-armv7a + variants: >- + qcom-armv8a-glibc-yocto qcom-armv8a-musl-yocto + qcom-armv7a-glibc-yocto qcom-armv7a-musl-yocto + qcom-armv7a-modem-glibc-linaro-qcomlt qcom-armv7a-modem-musl-linaro-qcomlt + qcom-armv8a-glibc-linaro-qcomlt + qcom-armv8a-glibc-yocto-noinitramfs ref: refs/pull/${{github.event.pull_request.number}}/merge branch: ${{github.base_ref}} url: ${{github.server_url}}/${{github.repository}} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0b3c97234..c66b5ed04 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -15,6 +15,12 @@ jobs: host: debian-bookworm images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image initramfs-firmware-image initramfs-rootfs-image cryptodev-module machines: qcom-armv8a qcom-armv7a-modem qcom-armv7a + variants: >- + qcom-armv8a-glibc-yocto qcom-armv8a-musl-yocto + qcom-armv7a-glibc-yocto qcom-armv7a-musl-yocto + qcom-armv7a-modem-glibc-linaro-qcomlt qcom-armv7a-modem-musl-linaro-qcomlt + qcom-armv8a-glibc-linaro-qcomlt + qcom-armv8a-glibc-yocto-noinitramfs ref: ${{github.sha}} ref_type: sha branch: ${{github.ref_name}}