Jump to content

[Armbian build PR] - pipeline: inventory all board vars; add `not-eos-with-video`; introduce `TARGETS_FILTER_INCLUDE`


Recommended Posts

Posted

pipeline: inventory all board vars; add not-eos-with-video; introduce TARGETS_FILTER_INCLUDE

  • pipeline: inventory all board vars; add not-eos-with-video; introduce TARGETS_FILTER_INCLUDE

    How to use:

    ./compile.sh inventory - does just the board inventory; look for output in output/info

    ./compile.sh targets-dashboard - does inventory, targets compositing, and images info; look for output in output/info, read the instructions output by the command if you want to load the OpenSearch dashboards.

    ./compile.sh targets - does the full targets compositing and artifacts, look for output in output/info

    If you don't have a userpatches/targets.yaml, one will be provided for you defaulting to Jammy minimal CLI and Jammy xfce desktop, for all boards in all branches. You can pass filters via TARGETS_FILTER_INCLUDE=... to narrow.

    • board JSON inventory:
      • more generic regex parsing of variables from board files:
        • all top-level (non-indented) variables are parsed and included in the JSON board inventory
        • this allows us to add new variables to the board files without having to update the parser
        • variables can be bare, export or declare -g, but must be quoted (single or double) and UPPER_CASE
      • some special treatment for certain variables:
        • KERNEL_TARGET is parsed as a comma-separated list of valid BRANCH'es
        • BOARD_MAINTAINER is parsed as space-separated list of valid maintainer GH usernames as BOARD_MAINTAINERS: [...] in the JSON
          • script complains if BOARD_MAINTAINER is not set in core boards. Empty is still allowed.
        • HAS_VIDEO_OUTPUT="no" causes BOARD_HAS_VIDEO: false in the JSON (for desktop-only inventorying, see below)
    • introduce not-eos-with-video in items-from-inventory at the targets compositor
      • the same as not-eos, but with added BOARD_HAS_VIDEO: true filter, see above
    • introduce TARGETS_FILTER_INCLUDE for targets compositor
      • this filters the targets after compositing (but before getting image info), based on the board inventory data
      • it's a comma-separated list of key:value pairs, which are OR-ed together
      • new virtual info BOARD_SLASH_BRANCH post-compositing inventory for filtering of a specific BOARD/BRANCH combo (e.g. odroidhc4/edge)
      • some interesting possible filters:
        • TARGETS_FILTER_INCLUDE="BOARD:odroidhc4": only build a single board, all branches. JIRA AR-1806
        • TARGETS_FILTER_INCLUDE="BOARD_SLASH_BRANCH:odroidhc4/current": only build a single board/branch combo
        • TARGETS_FILTER_INCLUDE="BOARD:odroidhc4,BOARD:odroidn2": only build two boards, all branches.
        • TARGETS_FILTER_INCLUDE="BOARD_MAINTAINERS:rpardini": build all boards and branches where rpardini is a maintainer
        • TARGETS_FILTER_INCLUDE="BOARDFAMILY:rockchip64": build all boards and branches in the rockchip64 family
      • image-info-only variables like LINUXFAMILY is not available for filtering at this stage
    • rename config/templates targets-all-cli.yaml to targets-default.yaml
      • this is used when no userpatches/targets.yaml is found
      • new default includes all boards vs branches for non-EOS boards
        • also desktop for all boards that don't have `HAS_VIDEO_OUTPUT='no``
    • introduce simplified targets-dashboard CLI:
      • does only inventory, compositing, and image info, but not artifact reducing, etc.
      • ignore desktop builds in the OpenSearch indexer
      • update the OpenSearch Dashboards, including new information now available
    • invert the logic used for CLEAN_INFO and CLEAN_MATRIX
      • defaults to yes now, so new users/CI don't get hit by stale caches by default
      • repo pipeline CLI stuff is usually run on saved/restored artifacts for output/info, so don't clean by default via the CLI

View the full article

<
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines