sdk-var: uboot-imx: Update to latest #21
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
| # SPDX-License-Identifier: Variscite-Proprietary-License | |
| # Copyright 2025 Variscite Ltd. | |
| # | |
| # Continuous-integration workflow for Debian image builds. | |
| # Runs only on public repositories using GitHub’s free hosted runners. | |
| # | |
| # The workflow has two high-level phases: | |
| # - Prepare a Docker build environment (restore cached image or build it) | |
| # - Use that container to compile U-Boot, Linux, rootfs and images | |
| name: Build all machines - Public | |
| on: | |
| push: | |
| branches: | |
| - LSDK-24.12_DEBIAN-12_LF-6.12.20_var01 | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-flexbuild: | |
| # Skip the entire job if the repository is private | |
| if: github.event.repository.private == false | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| machine: | |
| - imx95-var-dart | |
| rootfs: | |
| - server | |
| - desktop | |
| steps: | |
| # GitHub-hosted runners expose additional space under /mnt. | |
| # Replace the default workspace with a symlink to gain ~30 GB. | |
| - name: Setup workspace on GitHub-hosted runner using /mnt with more storage | |
| if: "!contains(runner.labels, 'self-hosted')" | |
| run: | | |
| echo "Redirecting workspace to /mnt/work" | |
| sudo mkdir -p /mnt/work | |
| sudo rm -rf "$GITHUB_WORKSPACE" | |
| sudo ln -s /mnt/work "$GITHUB_WORKSPACE" | |
| sudo chown -R $USER:$USER /mnt/work | |
| - name: Refresh APT and install flexbuild deps | |
| run: | | |
| sudo apt-get update -yqq | |
| sudo apt-get install -yqq --no-install-recommends \ | |
| binfmt-support qemu-system-common qemu-user-static | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Register QEMU for arm64 | |
| uses: docker/setup-qemu-action@v3 | |
| with: | |
| platforms: arm64 | |
| # Quick sanity-check on available storage | |
| - name: Report disk free space | |
| run: | | |
| echo "=== Filesystem usage ===" | |
| df -h / | |
| echo | |
| echo "=== /mnt usage ===" | |
| df -h /mnt || echo "/mnt not mounted" | |
| - name: Print build information | |
| run: | | |
| echo "Building ${{ matrix.machine }}:${{ matrix.rootfs }}" | |
| echo "flexbuild reference: ${{ inputs['flexbuild-ref'] }}" | |
| ############################################################ | |
| # Prepare Docker build environment | |
| ############################################################ | |
| # Build the container from scratch | |
| - name: Build NXP Docker container | |
| run: | | |
| . setup.env || true | |
| echo "FBDIR is '$FBDIR'" | |
| bld docker || true | |
| # Export container name for subsequent steps | |
| - name: Save container name to variable | |
| run: | | |
| . setup.env || true | |
| echo "CONTAINER_NAME=fbdebian" >> $GITHUB_ENV | |
| # Show current Docker state before launching the container | |
| - name: List images and containers pre-run | |
| run: | | |
| echo "=== Docker images ===" | |
| docker images fbdebian || true | |
| echo | |
| echo "=== Containers before run ===" | |
| docker ps -a | |
| # Launch the privileged build container | |
| - name: Run Docker container | |
| run: | | |
| . setup.env || true | |
| echo "Starting container: $CONTAINER_NAME" | |
| docker run -d --name "$CONTAINER_NAME" --privileged --net=host \ | |
| -v "$HOME:$HOME" -v "$FBDIR:$FBDIR" -v /lib/modules:/lib/modules -v /dev:/dev \ | |
| -v /etc/localtime:/etc/localtime:ro \ | |
| --add-host=fbdebian:127.0.0.1 \ | |
| -w "$FBDIR" fbdebian:12 tail -f /dev/null | |
| # Confirm container launch | |
| - name: List images and containers post-run | |
| run: | | |
| echo "=== Docker images ===" | |
| docker images fbdebian || true | |
| echo | |
| echo "=== Containers after run ===" | |
| docker ps -a | |
| # Quick health-check | |
| - name: Run test command inside container | |
| run: | | |
| docker exec "$CONTAINER_NAME" echo "Container up" | |
| ############################################################ | |
| # Build firmware and images inside the container | |
| ############################################################ | |
| - name: Install host dependencies | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| time bld host-dep | |
| ' | |
| - name: Build U-Boot | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml uboot | |
| ' | |
| - name: Build Linux | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml linux | |
| ' | |
| - name: Build root filesystem | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml rfs | |
| ' | |
| - name: Build applications | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml apps | |
| ' | |
| - name: Merge applications into rootfs | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml merge-apps | |
| ' | |
| - name: Merge boot partition and rootfs | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml merge-bootpart-rfs | |
| ' | |
| - name: Create recovery SD-card image | |
| run: | | |
| docker exec "$CONTAINER_NAME" /bin/bash -c ' | |
| . setup.env || true | |
| bld -r debian:${{ matrix.rootfs }} -m ${{ matrix.machine }} -f sdk-var.yml create-recovery-sdcard-image | |
| ' |