summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorIlya Lipnitskiy <ilya.lipnitskiy@gmail.com>2021-02-23 21:06:21 -0800
committerJosef Schlehofer <pepe.schlehofer@gmail.com>2021-03-01 08:47:15 +0100
commitb9ff010dca0993fbe1998909dd6769548e70cdaa (patch)
tree59b1df56205a1d42c0cd08a95b8f83bc445b3461 /.github
parent5b0c55ecb4d73c8db4cc67ba173e81eb183a0675 (diff)
CI: enhance package detection logic
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> (cherry picked from commit a2b08b5cbfb655d853a92f845d7e93e6b4031456)
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/multi-arch-test-build.yml16
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