From 8722d99b5df27a7aecc6ca5ec8d5ac8b673e0919 Mon Sep 17 00:00:00 2001 From: hydevcode Date: Fri, 9 May 2025 13:23:56 +0800 Subject: [PATCH] =?UTF-8?q?[action/ci]=20=E4=BF=AE=E5=A4=8Dbsp=5Fbuildings?= =?UTF-8?q?=E7=9A=84=E4=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/bsp_buildings.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bsp_buildings.yml b/.github/workflows/bsp_buildings.yml index 2cdd318e415..bd80950682d 100644 --- a/.github/workflows/bsp_buildings.yml +++ b/.github/workflows/bsp_buildings.yml @@ -71,8 +71,8 @@ jobs: fi done if [[ $has_bsp == true ]]; then - changed_files=$(echo "${changed_files}"| cut -d'/' -f2 | sort -u) - echo "CHANGED_FILES=${changed_files}" >> $GITHUB_OUTPUT + changed_files=$(echo "${changed_files}"| cut -d'/' -f2 | sort -u| tr '\n' ',' | sed 's/,$//') + echo "CHANGED_FILES=[${changed_files}]" >> $GITHUB_OUTPUT fi #获取修改文件的路径,如果有bsp以外的文件夹则编译全部bsp,否则获取对应文件夹名 @@ -82,21 +82,26 @@ jobs: run: | raw_matrix=$(echo "${{ steps.read-config.outputs.raw_matrix }}" | base64 --decode) - CHANGED_FILES="${{ steps.changed_files.outputs.CHANGED_FILES }}" + CHANGED_FILES=${{ steps.changed_files.outputs.CHANGED_FILES }} + CHANGED_FILES=$(echo "$CHANGED_FILES" | sed 's/\[\|\]//g') # 将修改的文件路径与ALL_BSP_COMPILE.json文件的SUB_RTT_BSP进行判断,判断是否包含 - filtered_matrix="${filtered_matrix}" - if [[ "$CHANGED_FILES" == "" ]]; then + filtered_matrix=[] + echo "${CHANGED_FILES}" + if [[ -z "$CHANGED_FILES" ]]; then FILTER_CONDITION='.legs[]' filtered_matrix=$(jq -c "{legs: [$FILTER_CONDITION]}" <<< "$raw_matrix") else - CONDITIONS=$(echo "$CHANGED_FILES" | awk '{for (i=1; i<=NF; i++) printf "contains(\"%s\") or ", $i}') + CONDITIONS=$(echo "$CHANGED_FILES" | awk 'BEGIN { RS="," } { printf "contains(\"%s\") or ", $1 }') CONDITIONS=${CONDITIONS% or } + FILTER_CONDITION=".legs[] | select(any(.SUB_RTT_BSP[]; $CONDITIONS))" + filtered_matrix=$(jq -c "{legs: [$FILTER_CONDITION]}" <<< "$raw_matrix") fi + echo "filtered_matrix=${filtered_matrix}" >> $GITHUB_OUTPUT - echo "${filtered_matrix}" + echo ${filtered_matrix} build: runs-on: ubuntu-22.04 needs: generate-matrix