Updated ChangeLog & version number. #30
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 (.config) | |
| on: | |
| push: | |
| branches: [ 'master', 'main', 'release/**' ] | |
| pull_request: | |
| branches: [ '*' ] | |
| jobs: | |
| wolfboot_dot_config_test: | |
| name: cmake .config test (${{ matrix.target }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| # These are exact file names from config/examples (including .config) | |
| # - imx-rt1040.config # Disabled, requires NXP SDK | |
| - sim.config | |
| - stm32c0.config | |
| - stm32f1.config | |
| - stm32f4-small-blocks-uart-update.config | |
| - stm32f7.config | |
| - stm32g0.config | |
| - stm32h5.config | |
| - stm32h7.config | |
| - stm32l0.config | |
| - stm32l4-cube.config | |
| - stm32l5.config | |
| - stm32u5.config | |
| - stm32wb.config | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Workaround for sources.list | |
| run: | | |
| # Replace sources | |
| set -euxo pipefail | |
| # Peek (what repos are active now) | |
| apt-cache policy | |
| grep -RInE '^(deb|Types|URIs)' /etc/apt || true | |
| # Enable nullglob so *.list/*.sources that don't exist don't break sed | |
| shopt -s nullglob | |
| echo "Replace sources.list (legacy)" | |
| sudo sed -i \ | |
| -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ | |
| /etc/apt/sources.list || true | |
| echo "Replace sources.list.d/*.list (legacy)" | |
| for f in /etc/apt/sources.list.d/*.list; do | |
| sudo sed -i \ | |
| -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ | |
| "$f" | |
| done | |
| echo "Replace sources.list.d/*.sources (deb822)" | |
| for f in /etc/apt/sources.list.d/*.sources; do | |
| sudo sed -i \ | |
| -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ | |
| -e "s|https\?://azure\.archive\.ubuntu\.com|http://mirror.arizona.edu|g" \ | |
| "$f" | |
| done | |
| echo "Fix /etc/apt/apt-mirrors.txt (used by URIs: mirror+file:...)" | |
| if grep -qE '^[[:space:]]*https?://azure\.archive\.ubuntu\.com/ubuntu/?' /etc/apt/apt-mirrors.txt; then | |
| # Replace azure with our mirror (idempotent) | |
| sudo sed -i 's|https\?://azure\.archive\.ubuntu\.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/apt-mirrors.txt | |
| fi | |
| # Peek (verify changes) | |
| grep -RIn "azure.archive.ubuntu.com" /etc/apt || true | |
| grep -RInE '^(deb|Types|URIs)' /etc/apt || true | |
| echo "--- apt-mirrors.txt ---" | |
| cat /etc/apt/apt-mirrors.txt || true | |
| - name: Install requirements | |
| run: | | |
| # Run system updates and install toolchain | |
| sudo apt-get update | |
| sudo apt-get install -y gcc-arm-none-eabi gcc-powerpc-linux-gnu cmake | |
| - name: Run dot-config examples | |
| run: | | |
| # Sample .config cmake test | |
| set -euo pipefail | |
| TARGET="${{ matrix.target }}" | |
| TARGET="${TARGET%.config}" | |
| TARGET="${TARGET%%-*}" | |
| BUILD_DIR="build-${TARGET}" | |
| LOG_FILE="run-${TARGET}.log" | |
| KEYWORD="Config mode: dot" | |
| echo "Target: ${TARGET}" | |
| echo "Build dir: ${BUILD_DIR}" | |
| echo "Saving output to ${LOG_FILE}" | |
| CONFIG_SRC="./config/examples/${{ matrix.target }}" | |
| echo "Fetch ${TARGET} example .config (source: ${CONFIG_SRC})" | |
| if [ ! -f "${CONFIG_SRC}" ]; then | |
| echo "Missing config file: ${CONFIG_SRC}" >&2 | |
| exit 1 | |
| fi | |
| cp "${CONFIG_SRC}" ./.config | |
| ls .config | |
| cat .config | |
| echo "" | |
| echo "Clean" | |
| rm -rf "./${BUILD_DIR}" | |
| # Here we should see the .config file values read and displayed: | |
| cmake -S . -B "${BUILD_DIR}" \ | |
| -DUSE_DOT_CONFIG=ON \ | |
| -DWOLFBOOT_TARGET="${TARGET}" 2>&1 | tee "${LOG_FILE}" | |
| # Config dot-config mode | |
| if grep -q -- "${KEYWORD}" "${LOG_FILE}"; then | |
| echo "Keyword found: ${KEYWORD}" | |
| else | |
| echo "Keyword not found: ${KEYWORD}" >&2 | |
| exit 1 | |
| fi | |
| # First: build keygen explicitly and inspect it | |
| echo "Building keygen_build for ${TARGET}" | |
| cmake --build "${BUILD_DIR}" --parallel 1 --target keygen_build | |
| if [ -f "${BUILD_DIR}/keygen" ]; then | |
| echo "Inspecting keygen:" | |
| ls -l "${BUILD_DIR}/keygen" | |
| file "${BUILD_DIR}/keygen" || true | |
| else | |
| echo "keygen not found at ${BUILD_DIR}/keygen" | |
| fi | |
| # Now run the normal build | |
| echo "Running full build" | |
| cmake --build "${BUILD_DIR}" --parallel 8 |