CI: Use the matrix to ovleray additional Kas files

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 <Peter.Hoyes@arm.com>
Tested-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
This commit is contained in:
Peter Hoyes
2022-09-06 14:16:59 +01:00
committed by Naveen Saini
parent 17db53ed83
commit a5d6af7144
2 changed files with 31 additions and 15 deletions

View File

@@ -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

View File

@@ -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