From 1ace644ad31eee70677e4e98813e758946522413 Mon Sep 17 00:00:00 2001 From: IFX-Anusha Date: Wed, 23 Sep 2026 12:13:52 +0000 Subject: [PATCH 1/2] ci(ifx_package_core): fall back to full board set if no feature board opted in A direct push to a branch with zero feature_board=true boards (e.g. control-main today) previously filtered ALL_BOARD_DATA down to an empty array, causing build-board to produce zero binaries and package-core to crash with a confusing 'tar: Cannot open: No such file or directory' instead of a clear error. Only apply the feature-board filter if it leaves at least one board, so branches with no board opted in yet keep building/packaging their full board set exactly as before this mechanism existed. --- .github/workflows/ifx_package_core.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ifx_package_core.yml b/.github/workflows/ifx_package_core.yml index 2f1b64814..dfd54244e 100644 --- a/.github/workflows/ifx_package_core.yml +++ b/.github/workflows/ifx_package_core.yml @@ -93,8 +93,13 @@ jobs: ALL_BOARD_DATA=$(extra/get_board_details.sh | jq -c 'sort_by(.variant)') if [[ "${{ github.event_name }}" == "push" ]]; then # limit direct pushes to this board family's own boards; PRs still - # validate the full board matrix before merge - ALL_BOARD_DATA=$(jq -c 'map(select(.feature_board == true))' <<< "${ALL_BOARD_DATA}") + # validate the full board matrix before merge. Only apply the + # filter if it leaves at least one board, so branches with no + # feature_board opted in yet keep building the full board set. + FEATURE_BOARD_DATA=$(jq -c 'map(select(.feature_board == true))' <<< "${ALL_BOARD_DATA}") + if [[ "$(jq 'length' <<< "${FEATURE_BOARD_DATA}")" -gt 0 ]]; then + ALL_BOARD_DATA="${FEATURE_BOARD_DATA}" + fi fi echo "CORE_HASH=$(git describe --always $HEAD_REF)" >> "$GITHUB_ENV" echo "ALL_BOARD_DATA=${ALL_BOARD_DATA}" >> "$GITHUB_ENV" From b24befe064f7a0db4325d10a573d6c139ea087d7 Mon Sep 17 00:00:00 2001 From: IFX-Anusha Date: Wed, 23 Sep 2026 12:49:56 +0000 Subject: [PATCH 2/2] ci(ifx_package_core): apply feature-board filter to PRs too Previously only direct pushes were limited to a board family's own feature_board boards; PRs always ran the full board matrix as a pre-merge safety net. Per request, apply the same filtering to PRs as well, so both events only build/test the branch's own boards (still falling back to the full set if none are opted in). Note: this trades away full-matrix pre-merge validation on PRs against edge-main/control-main - a PR touching shared CI/build logic will no longer be checked against unrelated boards (giga, portenta, etc.) before merge. --- .github/workflows/ifx_package_core.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ifx_package_core.yml b/.github/workflows/ifx_package_core.yml index dfd54244e..db7ac5fe5 100644 --- a/.github/workflows/ifx_package_core.yml +++ b/.github/workflows/ifx_package_core.yml @@ -91,15 +91,13 @@ jobs: # Set up basic environment for later steps CORE_VER=$(extra/get_core_version.sh) ALL_BOARD_DATA=$(extra/get_board_details.sh | jq -c 'sort_by(.variant)') - if [[ "${{ github.event_name }}" == "push" ]]; then - # limit direct pushes to this board family's own boards; PRs still - # validate the full board matrix before merge. Only apply the - # filter if it leaves at least one board, so branches with no - # feature_board opted in yet keep building the full board set. - FEATURE_BOARD_DATA=$(jq -c 'map(select(.feature_board == true))' <<< "${ALL_BOARD_DATA}") - if [[ "$(jq 'length' <<< "${FEATURE_BOARD_DATA}")" -gt 0 ]]; then - ALL_BOARD_DATA="${FEATURE_BOARD_DATA}" - fi + # limit builds/tests to this board family's own boards, for both + # direct pushes and PRs. Only apply the filter if it leaves at + # least one board, so branches with no feature_board opted in yet + # keep building the full board set. + FEATURE_BOARD_DATA=$(jq -c 'map(select(.feature_board == true))' <<< "${ALL_BOARD_DATA}") + if [[ "$(jq 'length' <<< "${FEATURE_BOARD_DATA}")" -gt 0 ]]; then + ALL_BOARD_DATA="${FEATURE_BOARD_DATA}" fi echo "CORE_HASH=$(git describe --always $HEAD_REF)" >> "$GITHUB_ENV" echo "ALL_BOARD_DATA=${ALL_BOARD_DATA}" >> "$GITHUB_ENV"