| #! /bin/bash |
| |
| # 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: |
| # corstone1000-mps3 |
| # fvp-base: [testimage] |
| # qemuarm64-secureboot: [clang, glibc, testimage] |
| # This argument should be quoted to avoid expansion and to be handled |
| # as a single value. |
| # |
| # Any further arguments will be handled as further yml file basenames. |
| # |
| # Turn this list into a series of yml files separated by colons to pass to kas |
| |
| set -e -u |
| |
| # First, parse the GitLab CI job name (CI_JOB_NAME via $1) and accumulate a list |
| # of Kas files. |
| JOBNAME="$1" |
| shift |
| |
| # The base name of the job |
| FILES="ci/$(echo $JOBNAME | cut -d ':' -f 1).yml" |
| |
| # The list of matrix variations |
| for i in $(echo $JOBNAME | cut -s -d ':' -f 2 | sed 's/[][,]//g'); do |
| # Given that there are no yml files for gcc or glibc, as those are the |
| # defaults, 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 == 'none' ]]; then |
| continue |
| fi |
| FILES+=":ci/$i.yml" |
| done |
| |
| # Now pick up any further names |
| for i in $*; do |
| FILES+=":ci/$i.yml" |
| done |
| |
| echo $FILES |