From: Peter Hoyes <[email protected]> Adopt the jobs-to-kas helper script from meta-arm, which uses Gitlab's parellel matrix to overlay additional Kas files on top of the base Kas file (based on $CI_JOB_NAME).
This allows multiple combinations of Kas file overlays to be easily tested with minimal boilerplate. Signed-off-by: Peter Hoyes <[email protected]> --- .gitlab-ci.yml | 15 ++++++++++++--- ci/jobs-to-kas | 31 +++++++++++++++++++------------ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index addd04c..22a8ef9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,11 +80,17 @@ nrf52840dk-nrf52840: qemu-cortex-a53: extends: .build -qemu-cortex-m0/testimage: +qemu-cortex-m0: extends: .build + parallel: + matrix: + - TESTING: testimage -qemu-cortex-m3/testimage: +qemu-cortex-m3: extends: .build + parallel: + matrix: + - TESTING: testimage qemu-cortex-r5: extends: .build @@ -92,8 +98,11 @@ qemu-cortex-r5: qemu-nios2: extends: .build -qemu-x86/testimage: +qemu-x86: extends: .build + parallel: + matrix: + - TESTING: testimage stm32mp157c-dk2: extends: .build diff --git a/ci/jobs-to-kas b/ci/jobs-to-kas index 7057970..296bb0d 100755 --- a/ci/jobs-to-kas +++ b/ci/jobs-to-kas @@ -1,19 +1,26 @@ #! /bin/bash -# Read a GitLab CI job name on $1 and transform it to a -# list of Kas yaml files +# This script is expecting an input of machine name, optionally followed by a +# colon and a list of one or more parameters separated by commas between +# brackets. For example, the following are acceptable: +# qemu-x86 +# qemu-cortex-m3: [testimage] +# qemu-cortex-a53: [zephyr-toolchain, testimage] +# +# Turn this list into a series of yml files separated by colons to pass to kas set -e -u -# Read Job namne from $1 and split on / -IFS=/ read -r -a PARTS<<<$1 +FILES="ci/$(echo $1 | cut -d ':' -f 1).yml" -# Prefix each part with ci/ -PARTS=("${PARTS[@]/#/ci/}") +for i in $(echo $1 | cut -s -d ':' -f 2 | sed 's/[][,]//g'); do + # Given that there is no yml file for default, we can simply ignore those + # parameters. They are necessary to pass in so that matrix can correctly + # setup all of the permutations of each individual run. + if [[ $i == 'default' ]]; then + continue + fi + FILES+=":ci/$i.yml" +done -# Suffix each part with .yml -PARTS=("${PARTS[@]/%/.yml}") - -# Print colon-separated -IFS=":" -echo "${PARTS[*]}" +echo $FILES -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#57988): https://lists.yoctoproject.org/g/yocto/message/57988 Mute This Topic: https://lists.yoctoproject.org/mt/93500214/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
