diff options
| author | Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> | 2021-02-23 21:06:21 -0800 |
|---|---|---|
| committer | Paul Spooren <mail@aparcar.org> | 2021-02-23 20:17:30 -1000 |
| commit | a2b08b5cbfb655d853a92f845d7e93e6b4031456 (patch) | |
| tree | f5a8de4aa18a3d6937f25b444ade76e18b8055a3 | |
| parent | 9737c89ce7df36ad53a31f5cfef8f7dac86beba8 (diff) | |
CI: enhance package detection logic
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
| -rw-r--r-- | .github/workflows/multi-arch-test-build.yml | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 20187622b..249efff33 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -34,10 +34,18 @@ jobs: - name: Determine changed packages run: | - # only detect packages with changed Makefiles - PACKAGES="$(git diff --diff-filter=d --name-only origin/master \ - | grep -E 'Makefile$|test.sh$' | grep -Ev '/files/|/src/' \ - | awk -F/ '{ print $(NF-1) }' | tr '\n' ' ')" + # only detect packages with changes + PKG_ROOTS=$(find . -name Makefile | grep -v ".*/src/Makefile" | sed -e 's@./\(.*\)/Makefile@\1/@') + CHANGES=$(git diff --diff-filter=d --name-only origin/master) + + for ROOT in $PKG_ROOTS; do + for CHANGE in $CHANGES; do + if [[ "$CHANGE" == "$ROOT"* ]]; then + PACKAGES+=$(echo "$ROOT" | sed -e 's@.*/\(.*\)/@\1 @') + break + fi + done + done # fallback to test packages if nothing explicitly changes this is # should run if other mechanics in packages.git changed |
