From 9ed2fc120ba57ae57ba83ff86ebb57f9709901c4 Mon Sep 17 00:00:00 2001 From: David Garske Date: Mon, 2 Nov 2026 14:06:56 -0800 Subject: [PATCH] ci: build against the latest MCUXpresso SDK release instead of the manifests' default branch --- .github/workflows/imxrt700-emulator-tests.yml | 10 ++++++++-- .github/workflows/lpc55s69-emulator-tests.yml | 10 ++++++++-- .github/workflows/mcxn-emulator-tests.yml | 10 ++++++++-- .../workflows/test-build-mcux-sdk-manifests.yml | 10 ++++++++-- .github/workflows/trustzone-emulator-tests.yml | 8 +++++++- tools/ci/mcux-sdk-latest-release.sh | 17 +++++++++++++++++ 6 files changed, 56 insertions(+), 9 deletions(-) create mode 100755 tools/ci/mcux-sdk-latest-release.sh diff --git a/.github/workflows/imxrt700-emulator-tests.yml b/.github/workflows/imxrt700-emulator-tests.yml index 9756103251..94753a32df 100644 --- a/.github/workflows/imxrt700-emulator-tests.yml +++ b/.github/workflows/imxrt700-emulator-tests.yml @@ -30,6 +30,12 @@ jobs: repository: nxp-mcuxpresso/CMSIS_5 path: CMSIS_5 + - name: Find the latest MCUXpresso SDK release + id: mcux-release + run: | + tag=$(tools/ci/mcux-sdk-latest-release.sh) + echo "tag=$tag" >> "$GITHUB_OUTPUT" + - name: Cache MCUXpresso SDK id: cache-mcuxpresso uses: actions/cache@v4 @@ -37,7 +43,7 @@ jobs: path: | mcuxpresso-sdk venv - key: mcuxpresso-sdk-mimxrt700evk-emu-${{ hashFiles('.github/workflows/imxrt700-emulator-tests.yml') }} + key: mcuxpresso-sdk-mimxrt700evk-emu-${{ hashFiles('.github/workflows/imxrt700-emulator-tests.yml') }}-${{ steps.mcux-release.outputs.tag }} - name: Setup MCUXpresso SDK if: steps.cache-mcuxpresso.outputs.cache-hit != 'true' @@ -45,7 +51,7 @@ jobs: python3 -m venv venv . venv/bin/activate pip install west - west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git mcuxpresso-sdk + west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git --mr ${{ steps.mcux-release.outputs.tag }} mcuxpresso-sdk cd mcuxpresso-sdk sed -i '/se_hostlib\|emwin\|executorch/d' manifests/boards/mimxrt700evk.yml west update_board --set board mimxrt700evk diff --git a/.github/workflows/lpc55s69-emulator-tests.yml b/.github/workflows/lpc55s69-emulator-tests.yml index eff1d96879..bf93b225cb 100644 --- a/.github/workflows/lpc55s69-emulator-tests.yml +++ b/.github/workflows/lpc55s69-emulator-tests.yml @@ -34,6 +34,12 @@ jobs: repository: nxp-mcuxpresso/CMSIS_5 path: CMSIS_5 + - name: Find the latest MCUXpresso SDK release + id: mcux-release + run: | + tag=$(tools/ci/mcux-sdk-latest-release.sh) + echo "tag=$tag" >> "$GITHUB_OUTPUT" + - name: Cache MCUXpresso SDK id: cache-mcuxpresso uses: actions/cache@v4 @@ -41,7 +47,7 @@ jobs: path: | mcuxpresso-sdk venv - key: mcuxpresso-sdk-lpcxpresso55s69-emu-${{ hashFiles('.github/workflows/lpc55s69-emulator-tests.yml') }} + key: mcuxpresso-sdk-lpcxpresso55s69-emu-${{ hashFiles('.github/workflows/lpc55s69-emulator-tests.yml') }}-${{ steps.mcux-release.outputs.tag }} - name: Setup MCUXpresso SDK if: steps.cache-mcuxpresso.outputs.cache-hit != 'true' @@ -49,7 +55,7 @@ jobs: python3 -m venv venv . venv/bin/activate pip install west - west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git mcuxpresso-sdk + west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git --mr ${{ steps.mcux-release.outputs.tag }} mcuxpresso-sdk cd mcuxpresso-sdk sed -i '/se_hostlib\|emwin/d' manifests/boards/lpcxpresso55s69.yml west update_board --set board lpcxpresso55s69 diff --git a/.github/workflows/mcxn-emulator-tests.yml b/.github/workflows/mcxn-emulator-tests.yml index abd9c5cbc7..1d86f62fb1 100644 --- a/.github/workflows/mcxn-emulator-tests.yml +++ b/.github/workflows/mcxn-emulator-tests.yml @@ -29,6 +29,12 @@ jobs: repository: nxp-mcuxpresso/CMSIS_5 path: CMSIS_5 + - name: Find the latest MCUXpresso SDK release + id: mcux-release + run: | + tag=$(tools/ci/mcux-sdk-latest-release.sh) + echo "tag=$tag" >> "$GITHUB_OUTPUT" + - name: Cache MCUXpresso SDK id: cache-mcuxpresso uses: actions/cache@v4 @@ -36,7 +42,7 @@ jobs: path: | mcuxpresso-sdk venv - key: mcuxpresso-sdk-frdmmcxn947-emu-${{ hashFiles('.github/workflows/mcxn-emulator-tests.yml') }} + key: mcuxpresso-sdk-frdmmcxn947-emu-${{ hashFiles('.github/workflows/mcxn-emulator-tests.yml') }}-${{ steps.mcux-release.outputs.tag }} - name: Setup MCUXpresso SDK if: steps.cache-mcuxpresso.outputs.cache-hit != 'true' @@ -44,7 +50,7 @@ jobs: python3 -m venv venv . venv/bin/activate pip install west - west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git mcuxpresso-sdk + west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git --mr ${{ steps.mcux-release.outputs.tag }} mcuxpresso-sdk cd mcuxpresso-sdk sed -i '/se_hostlib\|emwin\|executorch/d' manifests/boards/frdmmcxn947.yml west update_board --set board frdmmcxn947 diff --git a/.github/workflows/test-build-mcux-sdk-manifests.yml b/.github/workflows/test-build-mcux-sdk-manifests.yml index 220383b572..a574f65ee5 100644 --- a/.github/workflows/test-build-mcux-sdk-manifests.yml +++ b/.github/workflows/test-build-mcux-sdk-manifests.yml @@ -38,6 +38,12 @@ jobs: - name: Trust workspace run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + - name: Find the latest MCUXpresso SDK release + id: mcux-release + run: | + tag=$(tools/ci/mcux-sdk-latest-release.sh) + echo "tag=$tag" >> "$GITHUB_OUTPUT" + - name: Cache MCUXpresso SDK id: cache-mcuxpresso uses: actions/cache@v4 @@ -45,7 +51,7 @@ jobs: path: | mcuxpresso-sdk venv - key: mcuxpresso-sdk-${{inputs.board-name}}-${{hashFiles('.github/workflows/test-build-mcux-sdk-manifests.yml')}} + key: mcuxpresso-sdk-${{inputs.board-name}}-${{hashFiles('.github/workflows/test-build-mcux-sdk-manifests.yml')}}-${{ steps.mcux-release.outputs.tag }} - name: Setup MCUXpresso SDK if: steps.cache-mcuxpresso.outputs.cache-hit != 'true' @@ -53,7 +59,7 @@ jobs: python -m venv venv source venv/bin/activate pip install west - west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git mcuxpresso-sdk + west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git --mr ${{ steps.mcux-release.outputs.tag }} mcuxpresso-sdk cd mcuxpresso-sdk sed -i '/se_hostlib\|emwin\|executorch/d' manifests/boards/${{inputs.board-name}}.yml west update_board --set board ${{inputs.board-name}} diff --git a/.github/workflows/trustzone-emulator-tests.yml b/.github/workflows/trustzone-emulator-tests.yml index 58dab643ef..a7cd3b9430 100644 --- a/.github/workflows/trustzone-emulator-tests.yml +++ b/.github/workflows/trustzone-emulator-tests.yml @@ -181,13 +181,19 @@ jobs: repository: nxp-mcuxpresso/CMSIS_5 path: CMSIS_5 + - name: Find the latest MCUXpresso SDK release + id: mcux-release + run: | + tag=$(tools/ci/mcux-sdk-latest-release.sh) + echo "tag=$tag" >> "$GITHUB_OUTPUT" + - name: Setup MCUXpresso SDK (lpc55s69) shell: bash run: | python3 -m venv venv source venv/bin/activate pip install west - west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git mcuxpresso-sdk + west init -m https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git --mr ${{ steps.mcux-release.outputs.tag }} mcuxpresso-sdk cd mcuxpresso-sdk sed -i '/se_hostlib\|emwin\|executorch/d' manifests/boards/lpcxpresso55s69.yml west update_board --set board lpcxpresso55s69 diff --git a/tools/ci/mcux-sdk-latest-release.sh b/tools/ci/mcux-sdk-latest-release.sh new file mode 100755 index 0000000000..4ffc623b41 --- /dev/null +++ b/tools/ci/mcux-sdk-latest-release.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# mcux-sdk-latest-release.sh -- print the newest MCUXpresso SDK release tag +# (vYY.MM.NN) of the west manifests, skipping previews (-pvw) and LTS tags. +# The manifests' default branch tracks the next preview and can name commits +# that are not published yet, so CI checks out a release instead. + +set -e + +URL=https://github.com/nxp-mcuxpresso/mcuxsdk-manifests.git + +TAG=$(git ls-remote --tags --refs "$URL" 'v*' | sed 's#.*refs/tags/##' | + grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n 1) +if [ -z "$TAG" ]; then + echo "no MCUXpresso SDK release tag found at $URL" >&2 + exit 1 +fi +echo "$TAG"