Skip to content

FIT: gzip-compressed kernel + ramdisk (initramfs) support #873

FIT: gzip-compressed kernel + ramdisk (initramfs) support

FIT: gzip-compressed kernel + ramdisk (initramfs) support #873

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
container:
image: ghcr.io/wolfssl/wolfboot-ci-arm:v1.0
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: Trust workspace
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- 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