CI: kernel: test each target with additional changes than target/linux

Test each target if there are additional changes than target/linux.
This is needed to do wide test with changes to kmods, include/kernel and
changes to the workflow files.

While at it also cleanup and rework the code to drop duplication.
Also drop since_last_remote_commit to better track changes.

Fixes: 04ada8bc4118 ("CI: kernel: build only changed targets")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2023-01-11 16:24:37 +01:00
parent 3b669bc3f3
commit 57a02cbbff
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7

View File

@ -42,25 +42,22 @@ jobs:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v35 uses: tj-actions/changed-files@v35
with:
since_last_remote_commit: true
- name: Set targets - name: Set targets
id: find_targets id: find_targets
run: | run: |
export TARGETS_SUBTARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null \ ALL_TARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null)"
| sort -u -t '/' -k1 \ CHANGED_FILES="$(echo ${{ steps.changed-files.outputs.all_changed_files }} | tr ' ' '\n')"
| awk '{ print $1 }')"
export TARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null \ TARGETS_SUBTARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1 | awk '{ print $1 }')"
| sort -u -t '/' -k1,1 \ TARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1,1 | awk '{ print $1 }')"
| awk '{ print $1 }')"
JSON_TARGETS_SUBTARGETS='[' JSON_TARGETS_SUBTARGETS='['
FIRST=1 FIRST=1
for TARGET in $TARGETS_SUBTARGETS; do for TARGET in $TARGETS_SUBTARGETS; do
if echo ${{ steps.changed-files.outputs.all_changed_files }} | grep -q target/linux/generic || if echo "$CHANGED_FILES" | grep -v -q target/linux ||
echo ${{ steps.changed-files.outputs.all_changed_files }} | grep -q $(echo $TARGET | cut -d "/" -f 1); then echo "$CHANGED_FILES" | grep -q target/linux/generic ||
echo "$CHANGED_FILES" | grep -q $(echo $TARGET | cut -d "/" -f 1); then
[[ $FIRST -ne 1 ]] && JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"',' [[ $FIRST -ne 1 ]] && JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"','
JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"'"'"${TARGET}"'"' JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"'"'"${TARGET}"'"'
FIRST=0 FIRST=0
@ -71,8 +68,9 @@ jobs:
JSON_TARGETS='[' JSON_TARGETS='['
FIRST=1 FIRST=1
for TARGET in $TARGETS; do for TARGET in $TARGETS; do
if echo ${{ steps.changed-files.outputs.all_changed_files }} | grep -q target/linux/generic || if echo "$CHANGED_FILES" | grep -v -q target/linux ||
echo ${{ steps.changed-files.outputs.all_changed_files }} | grep -q $(echo $TARGET | cut -d "/" -f 1); then echo "$CHANGED_FILES" | grep -q target/linux/generic ||
echo "$CHANGED_FILES" | grep -q $(echo $TARGET | cut -d "/" -f 1); then
[[ $FIRST -ne 1 ]] && JSON_TARGETS="$JSON_TARGETS"',' [[ $FIRST -ne 1 ]] && JSON_TARGETS="$JSON_TARGETS"','
JSON_TARGETS="$JSON_TARGETS"'"'"${TARGET}"'"' JSON_TARGETS="$JSON_TARGETS"'"'"${TARGET}"'"'
FIRST=0 FIRST=0