Skip to content

ci: build s3l_lite - #2783

Merged
openipc-ai merged 1 commit into
masterfrom
ci-build-s3l
Nov 7, 2026
Merged

openipc-ai merged 1 commit into
masterfrom
ci-build-s3l

Conversation

@openipc-ai

Copy link
Copy Markdown
Collaborator

Problem

S3L is in UNBUILT_FAMILIES, so ci-matrix.py gives 0 boards for its kernel config, and only the smoke set, without S3L, for its package. #2763, #2764, #2766, #2768 and #2780 all landed with no S3L build in CI, and the green CI Gate on #2781 and #2782 says nothing about this board.

Change

  • s3l_lite moves into ALL_BOARDS, and the family leaves UNBUILT_FAMILIES.
  • It also joins SMOKE_BOARDS, because --self-test requires every vendor and rootfs layout to be covered there. Without that it fails with no board in SMOKE_BOARDS has vendor:ambarella.

Effect beyond CI

The nightly starts publishing S3L images (openipc.s3l-nor-lite.tgz and openipc.s3l-nand-lite.tgz), because Publish releases uploads every openipc*.tgz the matrix builds. That matters for three reasons:

Hardware tested on

Not run on a camera. This changes which boards CI builds, not what's in any image, and every other board's image is unaffected.

Evidence

python3 .github/scripts/ci-matrix.py --self-test:

ci-matrix: self-test ok (124 boards, 164 packages, 76 cases)

Before, for the kernel config and the package:

br-ext-chip-ambarella/board/s3l/s3l.generic.config
ci-matrix: 0/123 boards (needs_build=False) --- nothing that reaches a build
general/package/legacy/ambarella-osdrv-s3l/files/firmware/orccode.bin
ci-matrix: 14/123 boards (needs_build=True) --- smoke set, not every board

After, both paths:

ci-matrix: 1/124 boards (needs_build=True) --- narrowed to the affected boards
  s3l_lite

A local make BOARD=s3l_lite with the published toolchain passes, including with #2782's microcode: uImage 1582/2048 KB, squashfs 4156/5120 KB, UBI 8960/16384 KB. check_target_modules.sh reports all expected modules present on that build. This PR's own CI run should build s3l_lite as the first CI proof.

Scope

  • No kernel patches under general/package/all-patches/linux/ (those go to OpenIPC/linux)
  • No files specific to a single retail camera model (those go to OpenIPC/builder)
  • No probing or bring-up tooling (that goes to OpenIPC/ipctool)
  • Nothing under general/overlay/ or in a shared load_<vendor> script hardcodes a value specific to my board
  • Package sources come from an OpenIPC repository, and any version bump keeps at least the specificity of the pin it replaces (a new package should pin a full 40-character SHA)
  • No LD_PRELOAD, and no binaries that cannot be rebuilt from source
  • New code is selected by a defconfig, so CI actually builds it

S3L sat in UNBUILT_FAMILIES, so a change to its kernel config or its package
reached users with no build at all, and five bring-up pull requests have landed
that way. Its toolchain is published and the image fits, so the reason is gone.

It also joins the smoke set, because no other board there has its vendor or its
squashfs-plus-UBI layout. The nightly now publishes its images as well.
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Build s3l_lite in CI and publish nightly images

⚙️ Configuration changes ✨ Enhancement 🕐 Less than 10 minutes

Grey Divider

AI Description

• Add s3l_lite to the CI matrix so S3L changes receive a board build.
• Include S3L in smoke coverage for its vendor and rootfs layout.
• Nightly builds can now publish S3L images, though no published image has been camera-tested.
Diagram

graph TD
  A["S3L board config"] --> B["Matrix selector"] --> C["Build workflow"] --> D["Firmware artifacts"] --> E["Nightly release"]
  F["S3L smoke entry"] --> B
Loading
High-Level Assessment

Adding S3L to the existing matrix and smoke lists is the smallest approach consistent with the selector’s coverage checks. A separate S3L workflow would duplicate the current build and publication paths.

Files changed (1) +3 / -1

Other (1) +3 / -1
ci-matrix.pyEnable S3L regular and smoke builds +3/-1

Enable S3L regular and smoke builds

• Adds s3l_lite to ALL_BOARDS and SMOKE_BOARDS, and removes S3L from UNBUILT_FAMILIES. S3L paths can now select a board build, while smoke runs cover its vendor and rootfs layout.

.github/scripts/ci-matrix.py

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can hide the parts of a finding you never read, like the evidence or the agent prompt

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@openipc-ai
openipc-ai merged commit 620d0d1 into master Nov 7, 2026
43 checks passed
@openipc-ai
openipc-ai deleted the ci-build-s3l branch November 7, 2026 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant