From b41f839ee656ae2bcf25e8eacf524ae12d32e288 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Mon, 7 Nov 2022 16:50:15 +0200 Subject: [PATCH] [GitHub Actions] Improve change detection --- .github/actions/install-xsltproc/action.yml | 2 +- scripts/determine-modules-changed.sh | 31 +++++++++++++-------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.github/actions/install-xsltproc/action.yml b/.github/actions/install-xsltproc/action.yml index d650312f..6af19ce8 100644 --- a/.github/actions/install-xsltproc/action.yml +++ b/.github/actions/install-xsltproc/action.yml @@ -7,5 +7,5 @@ runs: - name: 'Install xsltproc' shell: bash run: | - sudo apt-get update -y + sudo apt-get update -q -y sudo apt-get install -q -y xsltproc diff --git a/scripts/determine-modules-changed.sh b/scripts/determine-modules-changed.sh index 59b8744c..e9d78d0b 100755 --- a/scripts/determine-modules-changed.sh +++ b/scripts/determine-modules-changed.sh @@ -1,7 +1,7 @@ #!/bin/bash function itemInModules() { local e - for e in ${!MODULES[@]}; do + for e in ${MODULES}; do if [[ "$e" == "$ITEM" ]]; then echo "1" return 0 @@ -9,14 +9,21 @@ function itemInModules() { done echo "0" } -MODIFIED="$1" +function addItem() { + if [ "$MODULES" == "" ]; then + echo "$1" + else + echo "$MODULES $1" + fi +} +MODIFIED="$*" FUNCTIONS=$(jq -c '.functions | .[]' matrix.json | sed 's/\"//g') CONSUMERS=$(jq -c '.consumers | .[]' matrix.json | sed 's/\"//g') SUPPLIERS=$(jq -c '.suppliers | .[]' matrix.json | sed 's/\"//g') PROCESSORS=$(jq -c '.processors | .[]' matrix.json | sed 's/\"//g') SINKS=$(jq -c '.sinks | .[]' matrix.json | sed 's/\"//g') SOURCES=$(jq -c '.sources | .[]' matrix.json | sed 's/\"//g') -declare -A MODULES +MODULES= for file in $MODIFIED; do FILE=$(realpath $file) echo "$file was changed" @@ -28,7 +35,7 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done @@ -40,7 +47,7 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done @@ -52,7 +59,7 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done @@ -64,7 +71,7 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done @@ -76,7 +83,7 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done @@ -88,19 +95,19 @@ for file in $MODIFIED; do HAS_ITEM=$(itemInModules) if ((HAS_ITEM == 0)); then echo "Add:$ITEM" - MODULES+=("$ITEM") + MODULES=$(addItem "$ITEM") fi fi done done echo "[" >modules.json COUNT=0 -for module in ${!MODULES[@]}; do +for module in $MODULES; do if ((COUNT > 0)); then - echo "," >>modules.json + echo "," >> modules.json fi COUNT=$((COUNT + 1)) - echo "\"$module\"" >>modules.json + echo "\"$module\"" >> modules.json done echo "]" >>modules.json