From c6f921bc3256fdc49da41542b278c2acf89fbaf4 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 15 Sep 2023 23:30:26 -0500 Subject: [PATCH] TODO Add parseConfigs.py to workflow --- .github/workflows/run-tests.yml | 39 ++++++++++++++------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 02df2e7..e0b9860 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -42,27 +42,17 @@ jobs: # Checks if the current reference in mbed-os.lib is the same as what is stored on the runner from the # previous workflow. If not, update the stored reference and fetch the new libraries -# TODO This only handles mbed-os.lib. To be able to handle other .lib files, it would be worth creating -# a script or custom action to check/update all library references +# TODO Rename step, remove id, and merge following step into this one - name: Check if mbed-os Libraries Need to be Fetched id: check-mbed-os-libs run: | - if [[ -f "$MBED_OS_REF_LOCATION/mbed-os.lib" ]]; then - if [[ -n $(diff "$MBED_OS_REF_LOCATION/mbed-os.lib" mbed-os.lib) ]]; then - cp mbed-os.lib "$MBED_OS_REF_LOCATION" - echo "fetch_libs=y" >> "$GITHUB_OUTPUT" - echo "Needed to fetch mbed-os libraries because they were not up-to-date on the runner" >> $GITHUB_STEP_SUMMARY - else - echo "fetch_libs=$([[ -d mbed-os ]] && echo n || echo y)" >> "$GITHUB_OUTPUT" - [[ -d mbed-os ]] && \ - echo "mbed-os libraries are up-to-date :relieved:" >> $GITHUB_STEP_SUMMARY || \ - echo "Needed to fetch mbed-os libraries because mbed-os did not exist on the runner, but the stored library reference was up-to-date :finnadie:" >> $GITHUB_STEP_SUMMARY - fi - else - mkdir -p "$MBED_OS_REF_LOCATION" - cp mbed-os.lib "$MBED_OS_REF_LOCATION" - echo "fetch_libs=$([[ -d mbed-os ]] && echo n || echo y)" >> "$GITHUB_OUTPUT" - echo "Needed to fetch mbed-os libraries because neither mbed-os nor the stored reference was present on the runner :point_right::point_left:" >> $GITHUB_STEP_SUMMARY + # Get the commit hashes of the two most recent states of the repo on the runner + # If any *.lib files changed between the two states, fetch the libraries + hashes=$(git reflog -1 | grep -Po "(?<=moving from )\S+|(?<= to )\S+$") + echo "$(git diff --name-only $hashes *.lib)" # TODO + if [[ -n "$(git diff --name-only $hashes *.lib)" ]]; then + echo "Needed to fetch mbed-os libraries :finnadie:" >> $GITHUB_STEP_SUMMARY + # TODO Fetch libraries fi - name: Fetch Mbed Libraries @@ -75,16 +65,18 @@ jobs: mbed-tools deploy # Gets device info using `mbed-tools detect` and sets output needed for compiling and flashing -# NOTE: Expecting '/mnt/$USER/' to be the base path for the mount point, as specified in the runner's ldm (https://github.com/LemonBoy/ldm) configuration, despite /media/[$USER/] typically being the base path for removable media +# NOTE: Expecting '/mnt/$USER/' to be the base path for the mount point, as specified in the runner's ldm (https://github.com/LemonBoy/ldm) configuration, +# despite /media/[$USER/] typically being the base path for removable media - name: Get Device Info id: get-dev-info run: | - detect_out=$(mbed-tools detect) - device=$(echo "$detect_out" | grep -oE "NUCLEO_\\S*") + device=$(python3 parseConfigs.py) + detect_out=$(mbed-tools detect | grep "$device") + #device=$(echo "$detect_out" | grep -oE "NUCLEO_\\S*") serial=$(echo "$detect_out" | grep -oE "/dev/tty\\S*") mountpoint=$(echo "$detect_out" | grep -oE "/mnt/$USER/\\S*") - if [[ -z "$device" || -z "$serial" || -z "$mountpoint" ]]; then - echo "Failed to detect target, serial port, and/or mount point matching 'NUCLEO_*', '/dev/tty*', and '/mnt/$USER/*', respectively :hurtrealbad:" >> $GITHUB_STEP_SUMMARY + if [[ -z "$serial" || -z "$mountpoint" ]]; then + echo "Failed to detect serial port and/or mount point matching '/dev/tty*' and '/mnt/$USER/*', respectively, for target '$device' :hurtrealbad:" >> $GITHUB_STEP_SUMMARY exit 1 fi echo "device=$device" >> "$GITHUB_OUTPUT" @@ -102,6 +94,7 @@ jobs: steps: - name: Compile and Flash + if: false # TODO Remove run: | mbed-tools configure -t ${{ env.TOOLCHAIN }} -m ${{ needs.setup.outputs.target }} cmake -S . -B cmake_build/${{ needs.setup.outputs.target }}/${{ env.BUILD_PROFILE }}/${{ env.TOOLCHAIN }} -GNinja