fix(build): Only copy if zephyr module detected

* To fix issues with breakage with existing user config
  repos, only do our copy strategy if we detect a zephyr module
  present in the repo as well.
This commit is contained in:
Peter Johanson 2023-12-07 10:41:40 -08:00 committed by Pete Johanson
parent 384637ae6c
commit 96f9031951

View file

@ -66,11 +66,12 @@ jobs:
shield: ${{ matrix.shield }} shield: ${{ matrix.shield }}
artifact_name: ${{ matrix.artifact-name }} artifact_name: ${{ matrix.artifact-name }}
run: | run: |
export new_tmp_dir=$(mktemp -d)
echo "tmp_dir=${new_tmp_dir}" >> $GITHUB_ENV
echo "tmp_config_dir=${new_tmp_dir}/config" >> $GITHUB_ENV
if [ -e zephyr/module.yml ]; then if [ -e zephyr/module.yml ]; then
export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'" export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'"
export new_tmp_dir=$(mktemp -d)
echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV
else
echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
fi fi
echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV
@ -80,8 +81,10 @@ jobs:
- name: Copy config files to isolated temporary directory - name: Copy config files to isolated temporary directory
run: | run: |
mkdir "${{ env.tmp_config_dir }}" if [ "${{ env.base_dir }}" != "${GITHUB_WORKSPACE}" ]; then
cp -R ${{ inputs.config_path }}/* "${{ env.tmp_config_dir }}/" mkdir "${{ env.base_dir }}/${{ inputs.config_path }}"
cp -R ${{ inputs.config_path }}/* "${{ env.base_dir }}/${{ inputs.config_path }}/"
fi
- name: Cache west modules - name: Cache west modules
uses: actions/cache@v3.0.11 uses: actions/cache@v3.0.11
@ -90,11 +93,11 @@ jobs:
cache_name: cache-zephyr-${{ env.zephyr_version }}-modules cache_name: cache-zephyr-${{ env.zephyr_version }}-modules
with: with:
path: | path: |
${{ env.tmp_dir }}/modules/ ${{ env.base_dir }}/modules/
${{ env.tmp_dir }}/tools/ ${{ env.base_dir }}/tools/
${{ env.tmp_dir }}/zephyr/ ${{ env.base_dir }}/zephyr/
${{ env.tmp_dir }}/bootloader/ ${{ env.base_dir }}/bootloader/
${{ env.tmp_dir }}/zmk/ ${{ env.base_dir }}/zmk/
key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }} key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-build-${{ env.cache_name }}- ${{ runner.os }}-build-${{ env.cache_name }}-
@ -102,21 +105,21 @@ jobs:
${{ runner.os }}- ${{ runner.os }}-
- name: West Init - name: West Init
working-directory: ${{ env.tmp_dir }} working-directory: ${{ env.base_dir }}
run: west init -l "${{ env.tmp_config_dir }}" run: west init -l "${{ env.base_dir }}/${{ inputs.config_path }}"
- name: West Update - name: West Update
working-directory: ${{ env.tmp_dir }} working-directory: ${{ env.base_dir }}
run: west update run: west update
- name: West Zephyr export - name: West Zephyr export
working-directory: ${{ env.tmp_dir }} working-directory: ${{ env.base_dir }}
run: west zephyr-export run: west zephyr-export
- name: West Build (${{ env.display_name }}) - name: West Build (${{ env.display_name }})
working-directory: ${{ env.tmp_dir }} working-directory: ${{ env.base_dir }}
shell: sh -x {0} shell: sh -x {0}
run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" -- -DZMK_CONFIG=${{ env.tmp_config_dir }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }} run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}
- name: ${{ env.display_name }} Kconfig file - name: ${{ env.display_name }} Kconfig file
run: | run: |