Updated ChangeLog & version number. #31
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: WolfBoot CMake Build (macOS) | |
| on: | |
| push: | |
| branches: [ 'master', 'main', 'release/**' ] | |
| pull_request: | |
| branches: [ "*" ] | |
| jobs: | |
| macos-cmake: | |
| name: Build on macOS (CMake + Ninja) | |
| runs-on: macos-14 | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| # - imx-rt # Disabled, requires NXP SDK | |
| - stm32c0 | |
| - stm32f1 | |
| - stm32f4 | |
| - stm32f7 | |
| - stm32g0 | |
| - stm32h5 | |
| - stm32h7 | |
| - stm32l0 | |
| - stm32l4 | |
| - stm32l5 | |
| - stm32u5 | |
| - stm32wb | |
| env: | |
| HOMEBREW_NO_AUTO_UPDATE: "1" # avoid updating taps during install | |
| HOMEBREW_NO_ANALYTICS: "1" | |
| HOMEBREW_CURL_RETRIES: "6" # ask curl inside brew to retry | |
| HOMEBREW_NO_INSTALL_CLEANUP: "1" | |
| steps: | |
| - name: Checkout (with submodules) | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install toolchain and build tools | |
| run: | | |
| set -euxo pipefail | |
| # Keep Homebrew pinned on the runner; only install what we need. | |
| brew list cmake >/dev/null 2>&1 || brew install --force-bottle cmake | |
| brew list ninja >/dev/null 2>&1 || brew install --force-bottle ninja | |
| # Refresh cask metadata (lightweight) and clear any stale download to avoid checksum mismatches. | |
| rm -f /Users/runner/Library/Caches/Homebrew/downloads/*gcc-arm-embedded* | |
| HOMEBREW_NO_AUTO_UPDATE=0 brew update --preinstall | |
| # Install full ARM GNU toolchain via cask (includes newlib headers/libs). | |
| brew list --cask gcc-arm-embedded >/dev/null 2>&1 || brew install --cask gcc-arm-embedded | |
| - name: Probe ARM GCC (paths + smoke build) | |
| run: | | |
| set -euxo pipefail | |
| which arm-none-eabi-gcc | |
| arm-none-eabi-gcc --version | |
| echo "=== GCC search dirs ===" | |
| arm-none-eabi-gcc -print-search-dirs | |
| echo "=== GCC verbose include paths (preprocess only) ===" | |
| # This prints the built-in include search order; harmless with empty stdin. | |
| arm-none-eabi-gcc -x c -E -v - < /dev/null || true | |
| echo "=== Compile a freestanding object (no stdlib headers needed) ===" | |
| cat > hello.c <<'EOF' | |
| int main(void) { return 0; } | |
| EOF | |
| arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -ffreestanding -nostdlib -c hello.c -o hello.o | |
| ls -l hello.o | |
| - name: Configure (STM32L4) | |
| run: | | |
| echo "Disabled, missing params" | |
| # rm -rf build | |
| # cmake -B build -G Ninja \ | |
| # -DWOLFBOOT_CONFIG_MODE=preset \ | |
| # -DWOLFBOOT_TARGET=stm32l4 \ | |
| # -DBUILD_TEST_APPS=ON \ | |
| # -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain_arm-none-eabi.cmake | |
| - name: Cmake Configure & Build Preset (${{ matrix.target }}) | |
| run: | | |
| rm -rf ./build-${{ matrix.target }} | |
| cmake --preset ${{ matrix.target }} | |
| cmake --build --preset ${{ matrix.target }} |