From f28ff40c9ace6bd1d71c1cd913050fdf55219627 Mon Sep 17 00:00:00 2001 From: Alex Huszagh Date: Thu, 2 Jun 2022 13:22:09 -0500 Subject: [PATCH] Add support for multiple bors targets. Allow using `bors try --target ... --target ...`, allowing multiple arguments rather than just a single one. --- .github/workflows/ci.yml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b4a074eb..428f320c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,10 +92,25 @@ jobs: declare -a "bors_args=(${bors_args})" fi - if [[ "${bors_args[0]-}" == --target ]]; then - echo "Only running targets matching '${bors_args[1]}'." + targets=() + index=0 + while [[ "${bors_args[$index]-}" == --target ]]; do + index=$(expr $index + 1) + targets+=("${bors_args[$index]}") + index=$(expr $index + 1) + done + + selects=() + for target in "${targets[@]}"; do + selects+=(".target == \"${target}\"") + done + query=$(printf " or %s" "${selects[@]}") + query="${query:4}" + + if [[ "${#targets[@]}" != "0" ]]; then + echo "Only running targets matching '${targets[@]}'." matrix="$( - target="${bors_args[1]}" yq --output-format json '[.[] | select(.target | test(env(target)))]' <<< "${matrix}" + yq --output-format json '[.[] | select('"${query}"')]' matrix.yaml <<< "${matrix}" )" else echo 'Running all targets.'