From e534fe7c237346267f0e292cf2bf0e10923de7a5 Mon Sep 17 00:00:00 2001 From: robbowland Date: Fri, 20 Jun 2025 16:22:37 +0100 Subject: [PATCH] ci: Support nested `config_path` inputs --- .github/workflows/build-user-config.yml | 29 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-user-config.yml b/.github/workflows/build-user-config.yml index 7b4f10b0b09..c2afb8ac56a 100644 --- a/.github/workflows/build-user-config.yml +++ b/.github/workflows/build-user-config.yml @@ -71,15 +71,24 @@ jobs: export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'" new_tmp_dir="${TMPDIR:-/tmp}/zmk-config" mkdir -p "${new_tmp_dir}" - echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV + base_dir="${new_tmp_dir}" else - echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV + base_dir=${GITHUB_WORKSPACE} fi if [ -n "${snippet}" ]; then extra_west_args="-S \"${snippet}\"" fi + config_path_parent="$(dirname ${{ inputs.config_path }})" + if [ "${config_path_parent}" = "${base_dir}" ]; then + west_workspace_dir="${base_dir}" + else + west_workspace_dir="${base_dir}/${config_path_parent}" + fi + + echo "base_dir=${base_dir}" >> $GITHUB_ENV + echo "west_workspace_dir=${west_workspace_dir}" >> $GITHUB_ENV echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV echo "extra_west_args=${extra_west_args}" >> $GITHUB_ENV echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV @@ -100,11 +109,11 @@ jobs: cache_name: cache-zephyr-${{ env.zephyr_version }}-modules with: path: | - ${{ env.base_dir }}/modules/ - ${{ env.base_dir }}/tools/ - ${{ env.base_dir }}/zephyr/ - ${{ env.base_dir }}/bootloader/ - ${{ env.base_dir }}/zmk/ + ${{ env.west_workspace_dir }}/modules/ + ${{ env.west_workspace_dir }}/tools/ + ${{ env.west_workspace_dir }}/zephyr/ + ${{ env.west_workspace_dir }}/bootloader/ + ${{ env.west_workspace_dir }}/zmk/ key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache_name }}- @@ -116,15 +125,15 @@ jobs: run: west init -l "${{ env.base_dir }}/${{ inputs.config_path }}" - name: West Update - working-directory: ${{ env.base_dir }} + working-directory: ${{ env.west_workspace_dir }} run: west update - name: West Zephyr export - working-directory: ${{ env.base_dir }} + working-directory: ${{ env.west_workspace_dir }} run: west zephyr-export - name: West Build (${{ env.display_name }}) - working-directory: ${{ env.base_dir }} + working-directory: ${{ env.west_workspace_dir }} shell: sh -x {0} run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" ${{ env.extra_west_args }} -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}