| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 3 年前 | |
feat: implement parallel repository management workflow This commit implements a complete parallel repository management system that allows building and publishing Debian repositories in parallel, significantly reducing build time for multiple distributions. - `update-main`: Builds common/main component once for all releases - `update -R <release>`: Builds release-specific components in isolated DBs - `merge`: Combines common + release-specific components into final repos - Isolated databases (aptly-isolated-<release>) avoid locking during parallel builds - Common component built once, not duplicated per release - Release-specific components (utils, desktop) built independently - Final merge combines all components with proper GPG signing - Fixed GPG signing to target top-level Release files (dists/{release}/Release) - Pool cleanup before publishing avoids "file already exists" errors - Smart package import skips duplicates during merge - Proper handling of empty repositories and missing components - Improved error handling and logging throughout 1. update-main: Build common component (once) 2. update -R <release>: Parallel workers build release-specific components 3. merge: Combine all components and publish with GPG signatures This enables GitHub Actions to run multiple release builders in parallel, reducing total repository build time from hours to minutes. Signed-off-by: Igor Pecovnik <igor@armbian.com> | 7 个月前 | |
add a hand command line tool (#3909) * add a hand command line tool * Rename folder * Add empty readme * Add tool for adjustin configs, set executable bit * Add folder to labeller Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com> | 4 年前 | |
consolidate rk322x and rockchip 32 bit families * merge patches from rockchip and rk322x families for current and edge kernels * adjust patches for tinkerboard to remove some cruft and overclocking * rework kernel configs * fix rk322x dmc to avoid lockup on rk3288 * migrate rockchip-6.6 into patch series, rename all patches with more understandable names * add gen-series.sh script in tools directory (it is a naive tool to create patch series when you don't want to rebase everything) | 2 年前 | |
mk_format_patch: fix shellcheck SC2045 (error) | 2 年前 | |
add a hand command line tool (#3909) * add a hand command line tool * Rename folder * Add empty readme * Add tool for adjustin configs, set executable bit * Add folder to labeller Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com> | 4 年前 | |
validate-board-config: follow `source ${SRC}/config/boards/<foo>` inheritance `Validate changed board configs` (PR #9747 CI run 25258999953) failed on the three Ayn-Odin2 derivative boards with: ERROR: config/boards/ayn-odin2mini.csc: BOARDFAMILY: required, ... ERROR: config/boards/ayn-odin2mini.csc: KERNEL_TARGET: required, ... (same pair on ayn-odin2portal.csc and ayn-thor.csc) The validator's header explicitly says it does NOT source the file ("boards have side-effecty function bodies"), and the regex `parse_assignments` only sees top-level `KEY=value` lines. Boards that consist of one `source "${SRC}/config/boards/<parent>.csc"` line plus a handful of overrides (BOARD_NAME, BOARD_VENDOR, BOARD_MAINTAINER, ARCH) inherit BOARDFAMILY / KERNEL_TARGET / KERNEL_TEST_TARGET from the parent, so the validator saw them as missing and erred out. The errors are pre-existing — they would fire on any future change to those .csc files. PR #9747 just made them visible by being the first PR to touch an inheriting board since the validator landed. Add `collect_inherited_assignments`: when a top-level `source` line points at another file under config/boards/ (matched by a regex anchored to start-of-line so `source` calls inside function bodies — which are always indented — aren't followed), parse that file's top-level assignments and lay them behind the child's own. Child's explicit values still win via dict.setdefault. Recursion is guarded by a visited set keyed on resolved paths, so a self-source or a parent-source-child cycle terminates instead of looping. Missing source targets are silently skipped — the main required-field checks will still flag any field that ends up unset after the merge, so a typo'd source path doesn't mask a real gap. Verified against the five PR-changed files: 6 errors → 0 errors, 4 warnings → 1 warning (the unmaintained-board warning on aml-t95z-plus.tvb, which is unrelated to inheritance and was already there). Self-contained boards (musepipro.conf etc.) produce identical output to before this change. | 3 个月前 |
| tool | usage |
|---|---|
| mk_format_patch | facilitate the creation of a series of non-numbered patches |
| unifying_configs | helps to unify kernel configs (kernel 5.x only) |